Skip to content

Latest commit

 

History

History
98 lines (70 loc) · 3.1 KB

File metadata and controls

98 lines (70 loc) · 3.1 KB

OpenWhisk

Lithops with OpenWhisk as serverless compute backend. Lithops can also run functions on vanilla OpenWhisk installations, for example by deploying OpenWhisk with openwhisk-devtools.

Installation

  1. install the openwhisk-cli

  2. Make sure you can run end-to-end python example.

    For example, create a file named hello.py with the next content:

    def main(args):
        name = args.get("name", "stranger")
        greeting = "Hello " + name + "!"
        print(greeting)
        return {"greeting": greeting}

    Now issue the wsk command to deploy the python action:

    wsk action create helloPython hello.py
    

    Finally, test the helloPython action:

    wsk action invoke --result helloPython --param name World
    

Configuration

  1. Edit your Lithops config and add the following keys:

     lithops:
         backend: openwhisk
    
     openwhisk:
         endpoint    : <OW_ENDPOINT>
         namespace   : <NAMESPACE>
         api_key     : <AUTH_KEY>
         insecure    : <True/False>
    • You can find all the values in the ~/.wskprops file. The content of the file should looks like:

      APIHOST=192.168.1.30
      AUTH=23bc46b1-71f6-4ed5-8c54-816aa4f8c50:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCG
      INSECURE_SSL=true
      NAMESPACE=guest
      

      Copy all the values into the lithops config file as:

      openwhisk:
          endpoint    : https://192.168.1.30
          namespace   : guest
          api_key     : 23bc46b1-71f6-4ed5-8c54-816aa4f8c50:123zO3xZCLrMN6v2BKK1dXYFpXlPkccOFqm12CdAsMgRU4VrNZ9lyGVCG
          insecure    : True

Summary of configuration keys for Openwhisk:

Group Key Default Mandatory Additional info
openwhisk endpoint yes API Host endpoint
openwhisk namespace yes Namespace
openwhisk api_key yes API Auth
openwhisk insecure yes Insecure access
openwhisk max_workers 100 no Max number of workers per FunctionExecutor()
openwhisk worker_processes 1 no Number of Lithops processes within a given worker. This can be used to parallelize function activations within a worker
openwhisk runtime no Docker image name
openwhisk runtime_memory 256 no Memory limit in MB. Default 256MB
openwhisk runtime_timeout 600 no Runtime timeout in seconds. Default 10 minutes
openwhisk invoke_pool_threads 500 no Number of concurrent threads used for invocation

Test Lithops

Once you have your compute and storage backends configured, you can run a hello world function with:

lithops hello -b openwhisk -s ibm_cos

Viewing the execution logs

You can view the function executions logs in your local machine using the lithops client:

lithops logs poll