Lithops with GCP Cloud Run as serverless compute backend.
- Install Google Cloud Platform backend dependencies:
python3 -m install lithops[gcp]-
Login to Google Cloud Console (or sign up if you don't have an account).
-
Create a new project. Name it
lithopsor similar. -
Navigate to IAM & Admin > Service Accounts.
-
Click on Create Service Account. Name the service account
lithops-executoror similar. Then click on Create. -
Add the following roles to the service account:
- Service Accounts --> Service Account User
- Cloud Run --> Cloud Run Admin
- Cloud Storage -->Storage Admin
-
Click on Continue. Then, click on Create key. Select JSON and then Create. Download the JSON file to a secure location in you computer. Click Done.
-
Enable the Cloud Build API : Navigate to APIs & services tab on the menu. Click ENABLE APIS AND SERVICES. Look for "Cloud Build API" at the search bar. Click Enable.
-
Enable the Cloud Run API : Navigate to APIs & services tab on the menu. Click ENABLE APIS AND SERVICES. Look for "Cloud Run API" at the search bar. Click Enable.
- Edit your lithops config and add the following keys:
lithops:
backend: gcp_cloudrun
gcp:
region : <REGION_NAME>
credentials_path : <FULL_PATH_TO_CREDENTIALS_JSON>| Group | Key | Default | Mandatory | Additional info |
|---|---|---|---|---|
| gcp | region | yes | Region name of the GCP services (e.g. us-east1) |
|
| gcp | credentials_path | yes | Absolute path of your JSON key file downloaded in step 7 (e.g. /home/myuser/lithops-invoker1234567890.json). Alternatively you can set GOOGLE_APPLICATION_CREDENTIALS environment variable. If not provided it will try to load the default credentials from the environment |
| Group | Key | Default | Mandatory | Additional info |
|---|---|---|---|---|
| gcp_cloudrun | region | no | Region name (e.g. us-east1). Lithops will use the region set under the gcp section if it is not set here |
|
| gcp_cloudrun | min_workers | 0 | no | Minimum number of workers of a given runtime to keep in warm status |
| gcp_cloudrun | max_workers | 1000 | no | Maximum number of workers to scale a given runtime |
| gcp_cloudrun | worker_processes | 1 | no | Number of Lithops processes within a given worker. This can be used to parallelize function activations within a worker. It is recommendable to set this value to the same number of CPUs of the container. |
| gcp_cloudrun | runtime | no | Container image name | |
| gcp_cloudrun | runtime_cpu | 0.25 | no | CPU limit. Default 0.25vCPU |
| gcp_cloudrun | runtime_memory | 256 | no | Memory limit in MB. Default 256Mi |
| gcp_cloudrun | runtime_timeout | 300 | no | Runtime timeout in seconds. Default 5 minutes |
| gcp_cloudrun | trigger | https | no | Currently it supports 'https' trigger |
| gcp_cloudrun | invoke_pool_threads | 100 | no | Number of concurrent threads used for invocation |
Once you have your compute and storage backends configured, you can run a hello world function with:
lithops hello -b gcp_cloudrun -s gcp_storageYou can view the function executions logs in your local machine using the lithops client:
lithops logs poll