Azure Functions
Contents
Azure Functions#
Lithops with Azure Functions as serverless compute backend.
Note that currently Azure functions supports Python 3.6, 3.7, 3.8 and 3.9. So you must use one of these versions in your client machine.
Installation#
Install Microsoft Azure backend dependencies:
python3 -m pip install lithops[azure]
Install Azure CLI
Install the Azure Functions core tools
Sign in with the Azure CLI:
az login
Create a Resource Group and a Storage Account:
Option 1:
Access to the Azure portal Resource Groups and create a new Resource group named LithopsResourceGroup (or similar) in your preferred region. If you already have a resource group, omit this step.
Access to the Azure portal Storage Accounts and create a new Storage Account with a unique name, for example: lithops0sa25s1. If you already have a storage account, omit this step.
Option 2:
Create a Resource Group in a specific location. If you already have a resource group, omit this step.
az group create --name LithopsResourceGroup --location westeurope
Create a Storage Account with a unique name. If you already have a storage account, omit this step.
storage_account_name=lithops$(openssl rand -hex 3) echo $storage_account_name az storage account create --name $storage_account_name --location westeurope \ --resource-group LithopsResourceGroup --sku Standard_LRS
Configuration#
Access to the Storage Account
In the left menu, under the Security + networking section, click on Access Keys and copy the Key 1
Edit your lithops config and add the following keys:
lithops:
backend : azure_functions
azure_storage:
storage_account_name: <STORAGE_ACCOUNT_NAME>
storage_account_key: <STORAGE_ACCOUNT_KEY>
azure_functions:
location: <CONSUMPTION_PLAN_LOCATION>
resource_group: <RESOURCE_GROUP_NAME>
Summary of configuration keys for Azure#
Azure#
Group |
Key |
Default |
Mandatory |
Additional info |
---|---|---|---|---|
azure_storage |
storage_account_name |
yes |
The name generated in the step 5 of the installation |
|
azure_storage |
storage_account_key |
yes |
An Account Key, found in Storage Accounts > |
Azure Functions#
Group |
Key |
Default |
Mandatory |
Additional info |
---|---|---|---|---|
azure_functions |
resource_group |
yes |
Name of the resource group used in the step 5 of the installation. |
|
azure_functions |
location |
yes |
The location of the consumption plan for the runtime. Use |
|
azure_functions |
max_workers |
1000 |
no |
Max number of parallel workers. Altough Azure limits the number of workrs to 200, it is convenient to keep this value high |
azure_functions |
worker_processes |
1 |
no |
Number of Lithops processes within a given worker. This can be used to parallelize function activations within a worker |
azure_functions |
runtime |
no |
Runtime name already deployed in the service |
|
azure_functions |
runtime_timeout |
300 |
no |
Runtime timeout in seconds. Default 5 minutes |
azure_functions |
trigger |
pub/sub |
no |
One of ‘https’ or ‘pub/sub’ |
azure_functions |
invoke_pool_threads |
100 |
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 test -b azure_functions -s azure_storage
Viewing the execution logs#
You can view the function executions logs in your local machine using the lithops client:
lithops logs poll