Logic App Standard is Microsoft's low code offering for implementing enterprise integrations. It offers Connectors which can save you time from building everything yourself. Azure Functions provide custom coding and more advanced data processing/mapping functionality. In advanced integration scenario's they are typically used together.
This templates includes a Logic App Standard and Functions deployment.
It needs to be used together with an integration-hub which hosts the Logic App Standard Plan and deploys the Azure Artifact libraries.
This template utilizes the following Azure resources:
- Azure Logic App Standard to design the workflows
- Azure Function Apps to host the custom code
- Azure Monitor for monitoring and logging
- Azure Key Vault for securing secrets
- Install Visual Studio Code with Azure Logic Apps (Standard) and Azure Functions extensions
- Create a new folder and switch to it in the Terminal tab
- Run
azd auth login
- Run
azd init -t https://github.com/marnixcox/logicapp-standard-func
Now the magic happens. The template contents will be downloaded into your project folder. This will be the next starting point for building your integrations.
The following folder structure is created.
├── infra [ Infrastructure As Code files ]
│ ├── main.bicep [ Main infrastructure file ]
│ ├── main.parameters.json [ Parameters file ]
│ ├── app [ Infra files specifically added for this template ]
│ ├── avm [ Azure Verified Modules ]
│ └── core [ Full set of infra files provided by Azure Developer CLI team ]
├── src [ Application code ]
│ ├── functions [ Azure Functions ]
│ └── workflows [ Azure Logic App Standard ]
└── azure.yaml [ Describes the app and type of Azure resources ]
- Install integration-hub first with the same environment name as logicapp-standard-func
Let's first provision the infra components. Add a resourceToken
parameter to the main.parameters.json
to set the application name or leave it out to have a random name generated.
"resourceToken": {
"value": "appname"
}
- Run
azd provision
First time an environment name, subscription and location need to be selected. These will then be stored in the .azure
folder.
Resource group and all components will be created.
After coding some functions and creating Azure Logic App Standard workflows these can be deployed with another single command.
- Run
azd deploy
Functions code and workflows will be deployed into the existing infra components.
In order to use the NuGet libraries from your Azure Artifacts feed add the <packageSources>
segment to the NuGet.Config
file.
<packageSources>
<add key="Integration" value="https://pkgs.dev.azure.com/ORG_NAME/PROJECT_NAME/_packaging/FEED_NAME/nuget/v3/index.json" />
</packageSources>
Both Logic App Standard and Functions are granted access to the Key Vault.
In order to setup the Function Connections in the connections.json file the following parameters are available in the Logic App Standard instance:
FunctionAppKey
FunctionAppName
This template includes pipelines for a staged dev/tst/acc/prd deployment for a develop
and main
branch. Make sure to update the serviceConnection
and AZURE_SUBSCRIPTION_ID
accordingly.