I am using Logic App in one of my projects and I thought it would be nice to use Azure Pipeline, even to just learn about CI/CD. I already figured out how to do CI/CD with Azure Function (another part of my project uses Functions). However, Logic Apps are a bit weird. All examples I've seen use ARM templates to deploy the Logic App (MSDN example).
This means that I would not only deploy my Logic App's workflow, but also the Logic App resource in Azure as well. Why is that?
In the case of Azure Function code, I have an Azure Function resource in Azure that I did set up manually, and in the pipeline, I just deploy the code to it - I do not require infrastructure deployment. So, the steps in the pipeline are similar to:
- Build the Function app
- Deploy the code to Function
Now, with the addition of the Logic App, it will start to look like this:
- Build the Function app
- Deploy the code to Function
- Deploy Logic App resource (workflow included in the ARM)
The issues I see:
- IaC would be nice if all my infrastructure was in ARM. I do not really intend to have it (I am too lazy to do it for azure functions, table storage, and the rest of my resources :P). I don't want to have partly Infrastructure as Code.
- Why is Logic App's workflow treated as part of ARM? I feel it's as if my App Service's ARM would contain C# code. Weird!
- In Logic App's ARM I have to specify values for workflow's properties. I don't want that. I treat these properties like the Configuration of an App Service. I don't want to keep these values in my repo. I want to be able to change it whenever I need in a Logic App in Azure (like I can change Configuration of Azure Function) and I want these values to not be modified when I run my pipeline!
Am I missing something?