Azure Logic Apps Standard Build, Connections Deployment, and Release Tasks
This extension provides automated build, connections deployment, and release tasks for Azure Logic Apps Standard.
AzureLogicAppsStandardBuild: Consolidates copy and zip operations for the LogicApp source folder.
AzureLogicAppsStandardConnectionsDeployment: Consolidates connection deployment.
AzureLogicAppsStandardRelease: Consolidates Azure Functions web app deploy and app settings configuration.
For more information, see Azure Integration Services Blog (manual process): Deploying Logic App Standard resource through DevOps pipeline.
Azure Logic Apps Standard Build Task
Arguments
The following table describes the arguments that you can provide to the Azure Logic Apps Build Azure DevOps Task. Although both deploymentFolder and deploymentWorkflowParametersFile are marked as optional, one of the two must be present when using this task.
Argument name |
Required |
Description |
sourceFolder |
Yes |
The folder that contains the Standard logic app. |
deploymentFolder |
No |
The folder that contains the workflowparameters folder which has the parameters.json file. |
deploymentWorkflowParametersFile |
No |
The path to the parameters.json file. |
archiveFile |
Yes |
The name for the zip archive. |
Usage
The following shows how to use this task in different scenarios.
Azure Logic Apps Standard Build passing in the deployment folder path
steps:
- task: AzureLogicAppsStandardBuild@0
displayName: 'Azure Logic Apps Standard Build'
inputs:
sourceFolder: '$(Build.SourcesDirectory)/$(logicAppName)'
deploymentFolder: '$(System.DefaultWorkingDirectory)/deployment/$(logicAppName)'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
This task copies the logic app found at '$(Build.SourcesDirectory)/$(logicAppName)'
, replaces the parameters.json file with the one found in the workflowparameters folder in '$(System.DefaultWorkingDirectory)/deployment/$(logicAppName)'
, and creates an archive at '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
.
Azure Logic Apps Standard Build passing in parameters.json file
steps:
- task: AzureLogicAppsStandardBuild@0
displayName: 'Azure Logic Apps Standard Build'
inputs:
sourceFolder: '$(Build.SourcesDirectory)/$(logicAppName)'
deploymentWorkflowParametersFile: '$(System.DefaultWorkingDirectory)/deployment/$(logicAppName)/workflowparameters/parameters.json'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
This task copies the logic app found at '$(Build.SourcesDirectory)/$(logicAppName)'
, replaces the parameters.json file with the one provided at '$(System.DefaultWorkingDirectory)/deployment/$(logicAppName)/workflowparameters/parameters.json'
, and creates an archive at '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
.
Azure Logic Apps Standard Build passing both deployment folder path and path to parameters.json file
steps:
- task: AzureLogicAppsStandardBuild@0
displayName: 'Azure Logic Apps Standard Build'
inputs:
sourceFolder: '$(Build.SourcesDirectory)/$(logicAppName)'
deploymentFolder: '$(System.DefaultWorkingDirectory)/deployment/$(logicAppName)'
deploymentWorkflowParametersFile: '$(System.DefaultWorkingDirectory)/deployment/$(logicAppName)/otherfolder/parameters.json'
archiveFile: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
When both deploymentFolder and deploymentWorkflowParametersFile is provided, the task will only use the path to the parameters.json file that is passed in. In this case, the task copies the logic app found at '$(Build.SourcesDirectory)/$(logicAppName)'
, replaces the parameters.json file with the one provided at '$(System.DefaultWorkingDirectory)/deployment/$(logicAppName)/otherfolder/parameters.json'
, and creates an archive at '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'
.
Azure Logic Apps Standard Connections Deployment Task
Prerequisites
Before you run this task, you'll need an Azure DevOps service connection.
Azure DevOps Service Connection
To deploy to Azure, you'll need an Azure subscription that's linked to Azure DevOps or Azure DevOps Server for billing, which requires Project Collection Administrator permissions.
Create the Azure Resource Manager service endpoint by using the Azure Resource Manager endpoint type. For more information about creating service connections, see
Manage service connections.
Azure CLI
This task requires that you install the Azure CLI on the Azure Pipelines agent to execute various commands throughout the task's execution. For more information, see How to install the Azure CLI.
If an agent is already running on the computer where the Azure CLI is installed, make sure that you restart the agent to update all the relevant environment variables.
Arguments
The following table describes the arguments that you can provide to the Azure Logic Apps Connections Deployment Azure DevOps Task.
Argument name |
Required |
Description |
connectedServiceNameARM |
Yes |
The service connection linked to the Azure subscription associated with the logic app to update. This service connection must have subscription permissions to make these changes, for example, the Contributor role. |
subscriptionId |
Yes |
The Azure subscription where the task creates the resources. |
appName |
Yes |
The name for the existing Standard logic app. |
resourceGroupName |
Yes |
The Azure resource group where to create the resources. |
location |
Yes |
The Azure region where to create the services. |
armTemplatePath |
Yes |
The folder that contains the connection ARM templates to deploy. This task deploys only the ARM templates that are recognized to have a single connection resource and expects the connection ARM template file names to use the following format:
{connection-name}.parameters.json and {connection-name}.template.json. All connections in this folder will be created. |
Usage
The following example shows how to use this task.
Azure Logic Apps Standard Connections Deployment
steps:
- task: AzureLogicAppsStandardConnectionsDeployment@0
displayName: 'Deploy Azure Logic Apps Standard Connections'
inputs:
connectedServiceName: '$(serviceConnectionName)'
subscriptionId: '$(subscriptionId)'
appName: '$(logicAppName)'
resourceGroupName: '$(resourceGroupName)'
location: '$(resourceGroupLocation)'
armTemplatePath: '$(Pipeline.Workspace)/$(logicAppIaCArtifactName)'
The connection ARM templates found in the path '$(Pipeline.Workspace)/$(logicAppIaCArtifactName)'
are created in the following location and is linked to the Standard logic app named '$(logicAppName)'
:
- Azure subscription:
$(subscriptionId)
- Resource group:
'$(resourceGroupName)'
- Location (region):
$(resourceGroupLocation)
Azure Logic Apps Standard Release Task
Prerequisites
Before you run this task, the Azure resources described previously must exist and an Azure DevOps service connection is required.
Azure DevOps Service Connection
To deploy to Azure, you'll need an Azure subscription that's linked to Azure DevOps or Azure DevOps Server for billing, which requires Project Collection Administrator permissions.
To create the Azure Resource Manager service endpoint, follow the steps in Connect to Microsoft Azure with an ARM service connection and use the Azure Resource Manager endpoint type. For more information, see Manage service connections.
Azure CLI
This task requires that you install the Azure CLI on the Azure Pipelines agent to execute various commands throughout the task's execution. For more information, see How to install the Azure CLI.
If an agent is already running on the computer where the Azure CLI is installed, make sure that you restart the agent to update all the relevant environment variables.
Arguments
The following table describes the arguments that you can provide to the Azure Logic Apps Release Azure DevOps Task.
[!NOTE]
Make sure to add any manually added appSettings values in the logic app to this task.
Argument name |
Required |
Description |
connectedServiceNameARM |
Yes |
The service connection linked to the Azure subscription associated with the logic app to update. This service connection must have subscription permissions to make these changes, for example, the Contributor role. |
appName |
Yes |
The name for the existing Standard logic app. |
resourceGroupName |
Yes |
The existing Azure resource group that contains the Standard logic app. |
appSettings |
No |
The app settings to add or change for the current logic app. Contains name-value pairs that your logic app loads at startup. Edit these app settings using the following syntax:
Example: [ { "name": "key1", "value": "valueabcd" }, { "name": "key2", "value": "valueefgh" } ] |
package |
Yes |
The location of the Standard logic app zip package on the automation agent or on a UNC path accessible to the automation agent, for example, \BudgetIT\Web\Deploy\Fabrikam.zip. You can also use predefined system variables and wildcard characters, for example, $(System.DefaultWorkingDirectory)***.zip. |
Usage
The following shows how to use this task in different scenarios.
Deploy a Standard logic app
steps:
- task: AzureLogicAppsStandardRelease@0
displayName: 'Azure Logic Apps Standard Release'
inputs:
connectedServiceName: '$(serviceConnectionName)'
appName: '$(logicAppName)'
resourceGroupName: '$(resourceGroupName)'
appSettings: |
[]
package: '$(Pipeline.Workspace)/cipipeline/$(logicAppCIArtifactName)/$(resources.pipeline.cipipeline.runID).zip'
-or-
steps:
- task: AzureLogicAppsStandardRelease@0
displayName: 'Azure Logic Apps Standard Release'
inputs:
connectedServiceName: '$(serviceConnectionName)'
appName: '$(logicAppName)'
resourceGroupName: '$(resourceGroupName)'
package: '$(Pipeline.Workspace)/cipipeline/$(logicAppCIArtifactName)/$(resources.pipeline.cipipeline.runID).zip'
The zip package found at '$(Pipeline.Workspace)/cipipeline/$(logicAppCIArtifactName)/$(resources.pipeline.cipipeline.runID).zip'
is deployed to the Standard logic app named '$(logicAppName)'
in the resource group named '$(resourceGroupName)'
.
Deploy a Standard logic app and update app settings
steps:
- task: AzureLogicAppsStandardRelease@0
displayName: 'Azure Logic Apps Standard Release'
inputs:
connectedServiceName: '$(serviceConnectionName)'
appName: '$(logicAppName)'
resourceGroupName: '$(resourceGroupName)'
appSettings: |
[
{
"name": "key1",
"value": "valueabcd"
},
{
"name": "key2",
"value": "valueefgh"
}
]
package: '$(Pipeline.Workspace)/cipipeline/$(logicAppCIArtifactName)/$(resources.pipeline.cipipeline.runID).zip'
The zip package found at '$(Pipeline.Workspace)/cipipeline/$(logicAppCIArtifactName)/$(resources.pipeline.cipipeline.runID).zip'
is deployed to the Standard logic app named '$(logicAppName)'
in the resource group named '$(resourceGroupName)'
. The app settings for the Standard logic app are updated with the provided values.
Issues and feedback
For any issues and feedback for the official AzureLogicAppsStandardBuild
, AzureLogicAppsStandardConnectionsDeployment
, and AzureLogicAppsStandardRelease
tasks, contact us at ladevex@microsoft.com.
Do you think there might be a security issue? Have you been phished or identified a security vulnerability? Don't report these issues here, but let us know by sending an email to secure@microsoft.com.