3

I can create consumption type logic apps with sample workflow using ARM templates. I want to create standard type logic apps with sample workflows using ARM templates.

But, I’m unable to find any reference documentations for the above one.

So, can anyone help me out on this one.

Thomas
  • 24,234
  • 6
  • 81
  • 125
Pradeep
  • 5,101
  • 14
  • 68
  • 140

3 Answers3

3

Sorry, in my earlier answer I misunderstood what you were actually asking. Now I believe I got you. But unfortunately what you want to achieve is not possible. And that is by design:

Standard logic apps are fundamentally different to consumption logic apps.

The old logic apps (now called consumption or multi-tenant) make no distinction between the workflow that you execute within a logic app and the logic app as an azure resource. Your logic app really IS your workflow and it runs on an dedicated ISE that you can not configure. That is why you will find all that workflow information in the arm template.

The new logic apps (now called standard or single-tenant) are build upon the same system that function apps are. Now your logic app is an azure resource that provides the runtime for one or more workflows. It is analogous to a function app that can run one or more functions. There is therefore a clear separation between the logic resource that is described in the arm template and the "application code" (your workflow) that is run within this azure resource.

Like function apps you can only create the azure infrastructure resources with arm templates. Azure Resource Manager has no means to deploy application code.

Your workflow definition will be a separate json file to the arm template that defines your logic app infrastructure and the deployment of the workflow is a step that happens after the provisioning of the infrastructure.

See this project for an example of how this can be setup in a CI/CD pipeline: https://github.com/Azure/logicapps/tree/master/azure-devops-sample

Manuel Batsching
  • 3,406
  • 14
  • 20
  • Manuel, I have gone through the above documentation and then created single tenant logic app workflows using `visual studio code`. The created project structure contains the `connections.json` and `local.settings.json` files which contains the connections details of workflows. But I want to change these settings per environment in Azure DevOps release pipeline. So, can you please suggest me how to do it in Azure DevOps release pipeline? – Pradeep Jul 15 '21 at 14:16
  • @Pradeep That sounds like a separate question to me. – Manuel Batsching Jul 15 '21 at 14:46
  • @Pradeep as this does not relate to the question "How to create standard type Logic Apps using ARM templates", please create a new question. This helps keeping the knowledge on SO organized. See also here: https://meta.stackoverflow.com/questions/266767/what-is-the-the-best-way-to-ask-follow-up-questions – Manuel Batsching Jul 16 '21 at 07:53
1

To add on Manuel answer, additional useful CI/CD info can be found here - https://learn.microsoft.com/en-us/azure/logic-apps/set-up-devops-deployment-single-tenant-azure-logic-apps?tabs=github

And we had to use different App Service SKU for App Service Plan section. Haven't had time to deep-dive in to SKU Topic, but for us only Workflow Standard (WS1 - for example)plans are available.

  • Welcome to Stack Overflow. These types of comments on existing answers are better suited as comments. Answers should be reserved for new solutions to the original problem. You obviously don't yet have enough reputation to post comments. With a few quality questions or answers, however, you should be able to get the fifty points needed to do so. – Jeremy Caney Jun 21 '21 at 18:19
0

If you need to parameterize your connections.json - just refer the values to the appsettings like this:

 {
    "managedApiConnections": {
        "documentdb": {
            "api": {
                "id": "/subscriptions/@appsetting('WORKFLOWS_SUBSCRIPTION_ID')/providers/Microsoft.Web/locations/norwayeast/managedApis/documentdb"
            },
            "authentication": {
                "type": "ManagedServiceIdentity"
            },
            "connection": {
                "id": "/subscriptions/@appsetting('WORKFLOWS_SUBSCRIPTION_ID')/resourceGroups/INT010/providers/Microsoft.Web/connections/documentdb-test10A"
            },
            "connectionRuntimeUrl": "@appsetting('connection_runtimeUrl')"
        }
    }
}
K.J.M.O.
  • 145
  • 2
  • 14