Skip to content

Latest commit

 

History

History
88 lines (59 loc) · 3.47 KB

localhost.md

File metadata and controls

88 lines (59 loc) · 3.47 KB

Localhost

In localhost, Lithops will use local CPUs to run functions in parallel. In this mode of execution it is not necessary to provide any kind of configuration or create a configuration file.

Configuration

  1. In case you have a config file, edit it and add these keys:
lithops:
    backend: localhost
    storage: localhost  # You can also set it to a public storage backend, such as aws_s3 or ibm_cos

Execution Environments

The localhost backend can run functions both using the local python3 interpreter, or using a container image. The environment is automatically chosen depending on whether or not you provided a Docker image as a runtime.

In both cases, you can view the executions logs in your local machine using the lithops client:

lithops logs poll

Default Environment

By default Lithops uses the local python interpreter to run the functions. That is, if for example you executed the main script with python3.12, your functions will run with python3.12. in this case, you must ensure that all the dependencies of your script are installed in your machine.

# As we use the default FunctionExecutor(), backend must be set to localhost in config
fexec = lithops.FunctionExecutor()

or alternatively, you can force the Localhost executor with:

# As we use/force the LocalhostExecutor(), backend does not need to be set to localhost in config
fexec = lithops.LocalhostExecutor()

Container Environment

The Container environment runs the functions within a docker container. In this case you must install the Docker CE version in your machine. This environment is automatically activated when you provide a docker image as a runtime. For example, by adding the following keys in the config:

localhost:
    runtime: docker.io/lithopscloud/ibmcf-python-v312

or by using the runtime param in a function executor:

# As we use the default FunctionExecutor(), the "backend" config parameter must be set to localhost in config
fexec = lithops.FunctionExecutor(runtime='docker.io/lithopscloud/ibmcf-python-v312')
# As we use/force the LocalhostExecutor(), the "backend" config parameter does not need to be set to localhost in config
fexec = lithops.LocalhostExecutor(runtime='docker.io/lithopscloud/ibmcf-python-v312')

In this mode of execution, you can use any docker image that contains all the required dependencies. For example, the IBM Cloud Functions and Knative runtimes are compatible with it.

Summary of configuration keys for Localhost:

Group Key Default Mandatory Additional info
localhost runtime python3 no By default it uses the python3 interpreter. It can be a container image name
localhost version 2 no There are 2 different localhost implementations. Use '1' for using the alternative version
localhost worker_processes CPU_COUNT no Number of Lithops processes. This is used to parallelize function activations. By default it is set to the number of CPUs of your machine

Test Lithops

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

lithops hello -b localhost -s localhost

Viewing the execution logs

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

lithops logs poll

You can view the localhost runner logs in /tmp/lithops-*/localhost-runner.log