This template includes generic integration components like a shared Logic App Standard Plan, Azure Service Bus and Azure Artifacts.
It can be used together with one or more logicapp-standard-func implementations to implement an application integration platform.
This template utilizes the following Azure resources:
- Azure Monitor for monitoring and logging
- Azure Key Vault for securing secrets
- Azure Service Bus for (reliable) messaging
- Azure Artifacts for publishing libraries to
- Azure Logic App Standard to host workflows
- Install Visual Studio Code
- Create a new folder and switch to it in the Terminal tab
- Run
azd auth login
- Run
azd init -t https://github.com/marnixcox/integration-hub
Now the magic happens. The template contents will be downloaded into your project folder.
The following folder structure is created.
├── infra [ Infrastructure As Code files ]
│ ├── main.bicep [ Main infrastructure file ]
│ └── main.parameters.json [ Parameters file ]
├── scripts [ Scripts to package and publish NuGet packages ]
├── src [ Application code ]
│ ├── model [ NuGet package for (service bus) message definitions ]
│ └── library [ NuGet package for useful code ]
└── azure.yaml [ Describes the app and type of Azure resources ]
main.bicep
- Main orchestrationmonitoring.bicep
- Observability stacklogicappplan.bicep
- Logic App Service hostingkeyvault.bicep
- Key Vaultservicebus.bicep
- Service Bus
- Install .NET framework 8
- Install Powershell:
winget install Microsoft.PowerShell
- Set execution policy for Powershell: set-executionpolicy remotesigned running the command as an administrator
- Install Azure Artifacts Credential Provider
First configure Azure Artifacts and create a feed. Enter the feed parameters in /scripts/nuget.ps1
$env:ORG_NAME
$env:PROJECT_NAME
$env:FEED_NAME
This script will run locally during development after azd provision
. This will be skipped in the DevOps pipelines as they run in ubuntu.
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.
This template includes pipelines for a build once, deploy everywhere
pattern. Make sure to update the serviceConnection
and AZURE_SUBSCRIPTION_ID
accordingly.
main.yml
- Branch triggervalidate.yml
- Validate infra codepackage.yml
- Package src codeprovision.yml
- Provision infradeploy.yml
- Deploy src