The purpose of this repository is to demonstrate you three things:
- how to write an Azure Logic App that uses different data sources and combines their data,
- how to convert your Logic App and other resources into a parameterized Bicep template, and
- how to deploy your Bicep template to Azure using GitHub Actions
This repository has two parts:
- external resources (SQL Server database, storage accounts) that are required for the Logic App,
- and the actual Logic App (incl. connections to external resources and an integration account)
For more thorough explanation how this demo is organized from the Logic App point of view, please see this document.
- Basic knowledge of Azure resources (AZ-900 level), especially:
- Basic knowledge of Azure AD (especially service principals)
- Basic knowledge of Logic Apps
- Basic knowledge of Azure CLI tool
- Basic knowledge of GitHub Actions (1, 2)
- Basic knowledge of ARM templates and Bicep language
Not everything I've linked above is needed, but if you don't understand something please study the linked material carefully.
Guide for deploying external resources can be found here.
Do this before other steps.
Guide how to convert your own Logic App (you've developed on Azure portal according to my instructions on the video or the application logic definition) and its required resources into a Bicep template, and write a GitHub Actions workflow for deploying the template using GitHub Actions can be found here.
Guide for deploying a ready-made Logic App and its required resources as Bicep template can be found here.
You can follow this guide even if you've prepared a Bicep template and a GitHub Actions workflow according to my instructions at the previous step.
Some ideas how this demo could be improved:
- More secure authentication methods
- Authentication for the external REST API
- Getting rid of Bicep warnings
- Adding an alternative CI/CD pipeline: Azure DevOps pipeline
- Use KeyVault for storing credentials
- Define Logic App as a separate file/module