Create and deploy single-tenant based logic app workflows with Azure Arc-enabled Logic Apps (Preview)
Note
This capability is in preview and is subject to the Supplemental Terms of Use for Microsoft Azure Previews.
With Azure Arc-enabled Logic Apps, you can create and deploy single-tenant based logic app workflows to a Kubernetes infrastructure that you operate and manage. Your logic apps run in a custom location that is mapped to an Azure Arc-enabled Kubernetes cluster where you installed and enabled the Azure App Service platform extensions bundle.
For example, this cluster can be Azure Kubernetes Service, bare-metal Kubernetes, or another setup. The extensions bundle enables you to run platform services such as Azure Logic Apps, Azure App Service, and Azure Functions on your Kubernetes cluster.
For more information, review the following documentation:
- What is Azure Arc-enabled Logic Apps?
- Single-tenant versus multitenant in Azure Logic Apps
- Azure Arc overview
- Azure Kubernetes Service overview
- What is Azure Arc-enabled Kubernetes?
- Custom locations on Azure Arc-enabled Kubernetes
- App Service, Functions, and Logic Apps on Azure Arc (Preview)
- Set up an Azure Arc-enabled Kubernetes cluster to run App Service, Functions, and Logic Apps (Preview)
Prerequisites
This section describes the common prerequisites across all the approaches and tools that you can use to create and deploy your logic app workflows. Tool-specific prerequisites appear along with their corresponding steps.
An Azure account with an active subscription. If you don't have an Azure subscription, create a free account.
A Kubernetes environment with an Azure Arc-enabled Kubernetes cluster and custom location where you can host and run Azure Logic Apps, Azure App Service, and Azure Functions.
Important
Make sure that you use the same resource location for your Kubernetes environment, custom location, and logic app.
When you create the App Service bundle extension on your Kubernetes cluster, you can change the default scaling behavior for running your logic app workflows. When you create the extension by using the Azure CLI command,
az k8s-extension create
, make sure to include the configuration setting,keda.enabled=true
:az k8s-extension create {other-command-options} --configuration-settings "keda.enabled=true"
For more information, review the following documentation:
Your own Microsoft Entra identity
If your workflows need to use any Azure-hosted connections, such as Office 365 Outlook or Azure Storage, your logic app must use a Microsoft Entra identity for authentication. Azure Arc-enabled Logic Apps can run on any infrastructure but requires an identity that has permissions to use Azure-hosted connections. To set up this identity, create an app registration in Microsoft Entra ID that your logic app uses as the required identity.
Note
Managed identity support is currently unavailable for Azure Arc-enabled Logic Apps.
To create a Microsoft Entra app registration using the Azure CLI, follow these steps:
Create an app registration by using the
az ad sp create
command.To review all the details, run the
az ad sp show
command.From the output of both commands, find and save the client ID, object ID, tenant ID, and client secret values, which you need to keep for later use.
To create a Microsoft Entra app registration using the Azure portal, follow these steps:
Create a new Microsoft Entra app registration by using the Azure portal.
After creation finishes, find the new app registration in the portal.
On the registration menu, select Overview, and save the client ID, tenant ID, and client secret values.
To find the object ID, next to the Managed application in local directory field, select the name for your app registration. From the properties view, copy the object ID.
Create and deploy logic apps
Based on whether you want to use Azure CLI or Visual Studio Code, select the matching tab to review the specific prerequisites and steps.
Before you start, you need to have the following items:
The latest Azure CLI extension installed on your local computer.
If you don't have this extension, review the installation guide for your operating system or platform.
If you're not sure that you have the latest version, follow the steps to check your environment and CLI version.
The preview Azure Logic Apps (Standard) extension for Azure CLI.
Although single-tenant Azure Logic Apps is generally available, the Azure Logic Apps extension is still in preview.
An Azure resource group for where to create your logic app.
If you don't have this resource group, follow the steps to create the resource group.
An Azure storage account to use with your logic app for data and run history retention.
If you don't have this storage account, you can create this account when you create your logic app, or you can follow the steps to create a storage account.
Check environment and CLI version
Sign in to the Azure portal. Check that your subscription is active by running the following command:
az login
Check your version of the Azure CLI in a terminal or command window by running the following command:
az --version
For the latest version, see the latest release notes.
If you don't have the latest version, update your installation by following the installation guide for your operating system or platform.
Install Azure Logic Apps (Standard) extension for Azure CLI
Install the preview single-tenant Azure Logic Apps (Standard) extension for Azure CLI by running the following command:
az extension add --yes --source "https://aka.ms/logicapp-latest-py2.py3-none-any.whl"
Create resource group
If you don't already have a resource group for your logic app, create the group by running the command, az group create
. Unless you already set a default subscription for your Azure account, make sure to use the --subscription
parameter with your subscription name or identifier. Otherwise, you don't have to use the --subscription
parameter.
Tip
To set a default subscription, run the following command, and replace MySubscription
with your subscription name or identifier.
az account set --subscription MySubscription
For example, the following command creates a resource group named MyResourceGroupName
using the Azure subscription named MySubscription
in the location eastus
:
az group create --name MyResourceGroupName
--subscription MySubscription
--location eastus
If your resource group is successfully created, the output shows the provisioningState
as Succeeded
:
<...>
"name": "testResourceGroup",
"properties": {
"provisioningState": "Succeeded"
},
<...>
Create logic app
To create an Azure Arc-enabled logic app, run the command, az logicapp create
, with the following required parameters. The resource locations for your logic app, custom location, and Kubernetes environment must all be the same.
Parameters | Description |
---|---|
--name -n |
A unique name for your logic app |
--resource-group -g |
The name of the resource group where you want to create your logic app. If you don't have one to use, create a resource group. |
--storage-account -s |
The storage account to use with your logic app. For storage accounts in the same resource group, use a string value. For storage accounts in a different resource group, use a resource ID. |
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
To create an Azure Arc-enabled logic app using a private Azure Container Registry (ACR) image, run the command, az logicapp create
, with the following required parameters:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
--deployment-container-image-name myacr.azurecr.io/myimage:tag
--docker-registry-server-password MyPassword
--docker-registry-server-user MyUsername
Show logic app details
To show details about your Azure Arc-enabled logic app, run the command, az logicapp show
, with the following required parameters:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Deploy logic app
To deploy your Azure Arc-enabled logic app using Azure App Service's Kudu zip deployment, run the command, az logicapp deployment source config-zip
, with the following required parameters:
Important
Make sure that your zip file contains your project's artifacts at the root level. These artifacts include all workflow folders, configuration files such as host.json, connections.json, and any other related files. Don't add any extra folders nor put any artifacts into folders that don't already exist in your project structure. For example, this list shows an example MyBuildArtifacts.zip file structure:
MyStatefulWorkflow1-Folder
MyStatefulWorkflow2-Folder
connections.json
host.json
az logicapp deployment source config-zip --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--src MyBuildArtifact.zip
Start logic app
To start your Azure Arc-enabled logic app, run the command, az logicapp start
, with the following required parameters:
az logicapp start --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Stop logic app
To stop your Azure Arc-enabled logic app, run the command, az logicapp stop
, with the following required parameters:
az logicapp stop --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Restart logic app
To restart your Azure Arc-enabled logic app, run the command, az logicapp restart
, with the following required parameters:
az logicapp restart --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Delete logic app
To delete your Azure Arc-enabled logic app, run the command, az logicapp delete
, with the following required parameters:
az logicapp delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Set up connection authentication
Currently, Azure Arc-enabled Kubernetes clusters don't support using a logic app managed identity to authenticate managed API connections. You create these Azure-hosted and managed connections when you use managed connectors in your workflows.
Instead, you have to create your own app registration in Microsoft Entra ID. You can then use this app registration as an identity for logic apps deployed and running in Azure Arc-enabled Logic Apps. For more information, review the top-level prerequisites.
From your app registration, you need the client ID, object ID, tenant ID, and client secret. If you use Visual Studio Code to deploy, you have a built-in experience for setting up your logic app with a Microsoft Entra identity. For more information, review Create and deploy logic app workflows - Visual Studio Code.
However, if you use Visual Studio Code for development, but you use Azure CLI or automated pipelines to deploy, follow these steps.
Configure connection and app settings in your project
In your logic app project's connections.json file, find the
authentication
object for the managed connection. Replace this object's contents with your app registration information, which you previously generated in the top-level prerequisites:"authentication": { "type": "ActiveDirectoryOAuth", "audience": "https://management.core.windows.net/", "credentialType": "Secret", "clientId": "@appsetting('WORKFLOWAPP_AAD_CLIENTID')", "tenant": "@appsetting('WORKFLOWAPP_AAD_TENANTID')", "secret": "@appsetting('WORKFLOWAPP_AAD_CLIENTSECRET')" }
In your logic app project's local.settings.json file, add your client ID, object ID, tenant ID, and client secret. After deployment, these settings become your logic app settings.
{ "IsEncrypted": false, "Values": { <...> "WORKFLOWAPP_AAD_CLIENTID":"<my-client-ID>", "WORKFLOWAPP_AAD_OBJECTID":"<my-object-ID", "WORKFLOWAPP_AAD_TENANTID":"<my-tenant-ID>", "WORKFLOWAPP_AAD_CLIENTSECRET":"<my-client-secret>" } }
Important
For production scenarios or environments, make sure that you protect and secure such secrets and sensitive information, for example, by using a key vault.
Add access policies
In single-tenant Azure Logic Apps, each logic app has an identity that is granted permissions by access policies to use Azure-hosted and managed connections. You can set up these access policies by using the Azure portal or infrastructure deployments.
ARM template
In your Azure Resource Manager template (ARM template), include the following resource definition for each managed API connection and provide the following information:
Parameter | Description |
---|---|
<connection-name> | The name for your managed API connection, for example office365 |
<object-ID> | The object ID for your Microsoft Entra identity, previously saved from your app registration |
<tenant-ID> | The tenant ID for your Microsoft Entra identity, previously saved from your app registration |
{
"type": "Microsoft.Web/connections/accessPolicies",
"apiVersion": "2016-06-01",
"name": "[concat('<connection-name>'),'/','<object-ID>')]",
"location": "<location>",
"dependsOn": [
"[resourceId('Microsoft.Web/connections', parameters('connection_name'))]"
],
"properties": {
"principal": {
"type": "ActiveDirectory",
"identity": {
"objectId": "<object-ID>",
"tenantId": "<tenant-ID>"
}
}
}
}
For more information, review the Microsoft.Web/connections/accesspolicies (ARM template) documentation.
Azure portal
For this task, use your previously saved client ID as the application ID.
In the Azure portal, find and open your logic app. On your logic app menu, under Workflows, select Connections, which lists all the connections in the workflows for your logic app resource.
Under API Connections, select a connection, which is
office365
in this example.On the connection's menu, under Settings, select Access policies > Add.
In the Add access policy pane, in the search box, find and select your previously saved client ID.
When you finish, select Add.
Repeat these steps for each Azure-hosted connection in your logic app.
Automate DevOps deployment
To build and deploy your Azure Arc-enabled logic apps, you can use the same pipelines and processes as for single-tenant based logic apps. To automate infrastructure deployments using pipelines for DevOps, make the following changes at the infrastructure level for both noncontainer and container deployments.
Standard deployment (noncontainer)
If you use zip deploy for logic app deployment, you don't need to set up a Docker registry for hosting container images. Although logic apps on Kubernetes technically run on containers, Azure Arc-enabled Logic Apps manages these containers for you. For this scenario, complete the following tasks when you set up your infrastructure:
- Notify the resource provider that you're creating a logic app on Kubernetes.
- Include an App Service plan with your deployment. For more information, review Include App Service plan with deployment.
In your Azure Resource Manager template (ARM template) include the following values:
Item | JSON property | Description |
---|---|---|
Location | location |
Make sure to use the same resource location (Azure region) as your custom location and Kubernetes environment. The resource locations for your logic app, custom location, and Kubernetes environment must all be the same. Note: This value isn't the same as the name for your custom location. |
App kind | kind |
The type of app that you're deploying so the Azure platform can identify your app. For Azure Logic Apps, this information looks like the following example: kubernetes,functionapp,workflowapp,linux |
Extended Location | extendedLocation |
This object requires the "name" of your custom location for your Kubernetes environment and must have the "type" set to "CustomLocation" . |
Hosting plan resource ID | serverFarmId |
The resource ID of the associated App Service plan, formatted as follows:
|
Storage connection string | AzureWebJobsStorage |
The connection string for your storage account Important: You need to provide the connection string for your storage account in your ARM template. For production scenarios or environments, make sure that you protect and secure such secrets and sensitive information, for example, by using a key vault. |
ARM template
The following example describes a sample Azure Arc-enabled Logic Apps resource definition that you can use in your ARM template. For more information, review the Microsoft.Web/sites template format (JSON) documentation.
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": "kubernetes,functionapp,workflowapp,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"clientAffinityEnabled": false,
"name": "[parameters('name')]",
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "Node|12"
}
}
}
Note
By default, FUNCTIONS_WORKER_RUNTIME app setting for your logic app is dotnet
.
Previously, node
was the default value. However, dotnet
is now the default
value for all new and existing deployed Arc enabled logic apps, even for apps that had
a different value. This change shouldn't affect your workflow's runtime, and everything
should work the same way as before. For more information, see the
FUNCTIONS_WORKER_RUNTIME app setting.
The APP_KIND app setting for your logic app is set to workflowapp, but in some scenarios, this app setting is missing, for example, due to Azure Resource Manager templates or other scenarios where the setting might not be included. If certain actions don't work, such as the Execute JavaScript Code action or the workflow stops working, check that the APP_KIND app setting exists and is set to to workflowapp. For more information, see the APP_KIND app setting.
Container deployment
If you prefer to use container tools and deployment processes, you can containerize your logic apps and deploy them to Azure Arc-enabled Logic Apps. For this scenario, complete the following high-level tasks when you set up your infrastructure:
Set up a Docker registry for hosting your container images.
To containerize your logic app, add the following Dockerfile to your logic app project's root folder, and follow the steps for building and publishing an image to your Docker registry, for example, review Tutorial: Build and deploy container images in the cloud with Azure Container Registry Tasks.
Note
If you use SQL as your storage provider, make sure that you use an Azure Functions image version 3.3.1 or later.
FROM mcr.microsoft.com/azure-functions/node:3.3.1 ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true \ FUNCTIONS_V2_COMPATIBILITY_MODE=true COPY . /home/site/wwwroot RUN cd /home/site/wwwroot
Notify the resource provider that you're creating a logic app on Kubernetes.
In your deployment template, point to the Docker registry and container image where you plan to deploy. Single-tenant Azure Logic Apps uses this information to get the container image from your Docker registry.
Include an App Service plan with your deployment. For more information, review Include App Service plan with deployment.
In your Azure Resource Manager template (ARM template), include the following values:
Item | JSON property | Description |
---|---|---|
Location | location |
Make sure to use the same resource location (Azure region) as your custom location and Kubernetes environment. The resource locations for your logic app, custom location, and Kubernetes environment must all be the same. Note: This value isn't the same as the name for your custom location. |
App kind | kind |
The type of app that you're deploying so the Azure platform can identify your app. For Azure Logic Apps, this information looks like the following example: kubernetes,functionapp,workflowapp,container |
Extended Location | extendedLocation |
This object requires the "name" of your custom location for your Kubernetes environment and must have "type" set to "CustomLocation" . |
Container name | linuxFxVersion |
The name for your container, formatted as follows: DOCKER\|<container-name> |
Hosting plan resource ID | serverFarmId |
The resource ID of the associated App Service plan, formatted as follows:
|
Storage connection string | AzureWebJobsStorage |
The connection string for your storage account Important: When you deploy to a Docker container, you need to provide the connection string for your storage account in your ARM template. For production scenarios or environments, make sure that you protect and secure such secrets and sensitive information, for example, by using a key vault. |
To reference your Docker registry and container image, include these values in your template:
Item | JSON property | Description |
---|---|---|
Docker registry server URL | DOCKER_REGISTRY_SERVER_URL |
The URL for the Docker registry server |
Docker registry server | DOCKER_REGISTRY_SERVER_USERNAME |
The username to access the Docker registry server |
Docker registry server password | DOCKER_REGISTRY_SERVER_PASSWORD |
The password to access the Docker registry server |
ARM template
The following example describes a sample Azure Arc-enabled Logic Apps resource definition that you can use in your ARM template. For more information, review the Microsoft.Web/sites template format (ARM template) documentation.
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[parameters('name')]",
"location": "[parameters('location')]",
"kind": " kubernetes,functionapp,workflowapp,container",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"properties": {
"name": "[parameters('name')]",
"clientAffinityEnabled": false,
"serverFarmId": "<hosting-plan-ID>",
"siteConfig": {
"appSettings": [
{
"name": "FUNCTIONS_EXTENSION_VERSION",
"value": "~3"
},
{
"name": "FUNCTIONS_WORKER_RUNTIME",
"value": "dotnet"
},
{
"name": "AzureWebJobsStorage",
"value": "<storage-connection-string>"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__id",
"value": "Microsoft.Azure.Functions.ExtensionBundle.Workflows"
},
{
"name": "AzureFunctionsJobHost__extensionBundle__version",
"value": "[1.*, 2.0.0)"
},
{
"name": "APP_KIND",
"value": "workflowapp"
},
{
"name": "DOCKER_REGISTRY_SERVER_URL",
"value": "<docker-registry-server-URL>"
},
{
"name": "DOCKER_REGISTRY_SERVER_USERNAME",
"value": "<docker-registry-server-username>"
},
{
"name": "DOCKER_REGISTRY_SERVER_PASSWORD",
"value": "<docker-registry-server-password>"
}
],
"use32BitWorkerProcess": "[parameters('use32BitWorkerProcess')]",
"linuxFxVersion": "DOCKER|<container-name>"
}
}
}
Note
Previously, the FUNCTIONS_WORKER_RUNTIME setting's default value was node
.
Now, dotnet
is the default value for all new and existing deployed Standard
logic apps, even for apps that had a different value. This change shouldn't affect
your workflow's runtime, and everything should work the same way as before. For more
information, see the FUNCTIONS_WORKER_RUNTIME app setting.
Include App Service plan with deployment
Whether you have a standard or container deployment, you have to include an App Service plan with your deployment. Although this plan becomes less relevant with a Kubernetes environment, both the standard and container deployments still require an App Service plan.
While other create options usually handle provisioning the Azure resource for this plan, if your deployments use "infrastructure-as-code" templates, you have to explicitly create the Azure resource for the plan. The hosting plan resource doesn't change, only the sku
information.
In your Azure Resource Manager template (ARM template), include the following values:
Item | JSON property | Description |
---|---|---|
Location | location |
Make sure to use the same resource location (Azure region) as your custom location and Kubernetes environment. The resource locations for your logic app, custom location, and Kubernetes environment must all be the same. Note: This value isn't the same as the name for your custom location. |
Kind | kind |
The kind of app service plan being deployed which needs to be kubernetes,linux |
Extended Location | extendedLocation |
This object requires the "name" of your custom location for your Kubernetes environment and must have "type" set to "CustomLocation" . |
Hosting plan name | name |
The name for the App Service plan |
Plan tier | sku: tier |
The App Service plan tier, which is K1 |
Plan name | sku: name |
The App Service plan name, which is Kubernetes |
ARM template
The following example describes a sample App Service plan resource definition that you can use with your app deployment. For more information, review the Microsoft.Web/serverfarms template format (ARM template) documentation.
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-12-01",
"location": "<location>",
"name": "<hosting-plan-name>",
"kind": "kubernetes,linux",
"extendedLocation": {
"name": "[parameters('customLocationId')]",
"type": "CustomLocation"
},
"sku": {
"tier": "Kubernetes",
"name": "K1",
"capacity": 1
},
"properties": {
"kubeEnvironmentProfile": {
"id": "[parameters('kubeEnvironmentId')]"
}
}
}
Change default scaling behavior
Azure Arc-enabled Logic Apps automatically manages the scaling for your logic apps based on the number of jobs in the backend storage queue. However, you can change the default scaling behavior.
In a logic app, the workflow definition specifies the sequence of actions to run. Whenever a workflow run is triggered, the Azure Logic Apps runtime creates a job for each action type in the workflow definition. The runtime then organizes these jobs into a job sequencer. This sequencer orchestrates running the jobs for the workflow definition, but the underlying Azure Logic Apps job orchestration engine runs each job.
For stateful workflows, the job orchestration engine uses storage queue messages to schedule jobs in the job sequencers. Behind the scenes, job dispatchers (or dispatcher worker instances) monitor these job queues. The orchestration engine uses a default minimum and maximum number of worker instances to monitor the job queues. For stateless workflows, the orchestration engine completely keeps action states in memory.
To change the default scaling behavior, you specify different minimum and maximum numbers of worker instances that monitor the job queues.
Prerequisites to change scaling
On your Azure Arc-enabled Kubernetes cluster, your previously created App Service bundle extension must have the keda.enabled
property set to true
. For more information, review the top-level prerequisites.
Change scaling threshold
In Azure Arc-enabled Logic Apps, the length of the job queue triggers a scale event and sets a threshold for how often scaling happens for your logic app. You can change the queue length, which has the default value set to 20
jobs. To scale less often, increase the queue length. To scale more often, decrease the queue length. This process might require some trial and error.
To change the queue length, in your logic app project's root-level host.json file, set the Runtime.ScaleMonitor.KEDA.TargetQueueLength
property, for example:
"extensions": {
"workflow": {
"settings": {
"Runtime.ScaleMonitor.KEDA.TargetQueueLength": "10"
}
}
}
Change throughput maximum
On an existing logic app resource, you can change the maximum number of worker instances, which has the default value set to 2
. This value controls the upper limit on how many worker instances can monitor the job queues.
To change this maximum, use the Azure CLI (logic app create only) and Azure portal.
Azure CLI
To create a new logic app, run the command, az logicapp create
, with the following parameters:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 1] [--max-worker-count 4]
To configure your maximum instance count, use the --settings
parameter:
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "K8SE_APP_MAX_INSTANCE_COUNT=10"
Azure portal
In your single-tenant based logic app settings, add or edit the K8SE_APP_MAX_INSTANCE_COUNT
setting value by following these steps:
In the Azure portal, find and open your single-tenant based logic app.
On the logic app menu, under Settings, select Configuration.
In the Configuration pane, under Application settings, either add a new application setting or edit the existing value, if already added.
Select New application setting, and add the
K8SE_APP_MAX_INSTANCE_COUNT
setting with the maximum value you want.Edit the existing value for the
K8SE_APP_MAX_INSTANCE_COUNT
setting.
When you finish, save your changes.
Change throughput minimum
On an existing logic app resource, you can change the minimum number of worker instances, which has the default value set to 1
. This value controls the lower limit on how many worker instances can monitor the job queues. For high availability or performance, increase this value.
To change this minimum, use the Azure CLI or the Azure portal.
Azure CLI
For an existing logic app resource, run the command, az logicapp scale
, with the following parameters:
az logicapp scale --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--instance-count 5
To create a new logic app, run the command, az logicapp create
, with the following parameters:
az logicapp create --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--storage-account MyStorageAccount --custom-location MyCustomLocation
[--plan MyHostingPlan] [--min-worker-count 2] [--max-worker-count 4]
Azure portal
In your single-tenant based logic app settings, change the Scale out property value by following these steps:
In the Azure portal, find and open your single-tenant based logic app.
On the logic app menu, under Settings, select Scale out.
On the Scale out pane, drag the minimum instances slider to the value that you want.
When you finish, save your changes.
Troubleshoot problems
To get more information about your deployed logic apps, try the following options:
Access app settings and configuration
To access your app settings, run the command, az logicapp config appsettings
, with the following parameters:
az logicapp config appsettings list --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
To configure an app setting, run the command, az logicapp config appsettings set
, with the following parameters. Make sure to use the --settings
parameter with your setting's name and value.
az logicapp config appsettings set --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--settings "MySetting=1"
To delete an app setting, run the command, az logicapp config appsettings delete
, with the following parameters. Make sure to use the --setting-names
parameter with the name of the setting you want to delete.
az logicapp config appsettings delete --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
--setting-names MySetting
View logic app properties
To view your app information and properties, run the command, az logicapp show
, with the following parameters:
az logicapp show --name MyLogicAppName
--resource-group MyResourceGroupName --subscription MySubscription
Monitor workflow activity
To view the activity for a workflow in your logic app, follow these steps:
In the Azure portal, find and open your deployed logic app.
On the logic app menu, select Workflows, and then select your workflow.
On the workflow menu, select Monitor.
Collect logs
To get logged data about your logic app, enable Application Insights on your logic app if not already enabled.