How can we improve Microsoft Azure Logic Apps?

Please make the LA tools for VS support parameterized expressions.

Please make the LA tools for VS support parameterized expressions. Not only for the Azure Functions and a couple of other elements as it is now, but for SharePoint URLs and GUIDs, Service Bus Queue/Topics - everything. This is a serious road block for using Logic Apps for any more less serious project where you have to rely on source control, follow processes like moving apps from one env. to another (DEV-TEST-PROD), etc..

48 votes
Vote
Sign in
Check!
(thinking…)
Reset
or sign in with
  • facebook
  • google
    Password icon
    I agree to the terms of service
    Signed in as (Sign out)
    You have left! (?) (thinking…)
    Sergei shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

    4 comments

    Sign in
    Check!
    (thinking…)
    Reset
    or sign in with
    • facebook
    • google
      Password icon
      I agree to the terms of service
      Signed in as (Sign out)
      Submitting...
      • Preetham Vinod [MSFT] commented  ·   ·  Flag as inappropriate

        Hi

        Templatization of sharepoint url, service bus queue/topic name etc is supported currently.
        You can use concat, resourceId, variables, parameters and their combinations in any of the supported fields.
        NOTE: for parameters, please provide "defaultValue" in the template json. The tools does not look in any parameter files.

        Any thing that would block the designer from loading is currently supported.

        you can find samples for parameterizing service bus queue name in our documentation here:
        https://docs.microsoft.com/en-us/azure/logic-apps/logic-apps-deploy-from-vs

        If there a particular value that breaks for you with the latest Logic app tools in VS, do let us know and we can work on fixing it.
        You can send us the details to logicappsbug@microsoft.com

      • Anonymous commented  ·   ·  Flag as inappropriate

        As an example of the issue below, if we have a function logic app like:

        "the-main-function": {
        "type": "Function",
        "inputs": {
        "body": "@body('http-request')",
        "headers": {
        "path": "@{parameters('the_main_function_path')}"
        },
        "function": {
        "id": "[parameters('the_main_function_id')]"
        }
        },
        "runAfter": {
        "http-request": [
        "Succeeded"
        ]
        }
        },

        We can deploy and it works fine. But if we open the designer and start adding/removing logic apps, this function will turn into:

        "the-main-function": {
        "type": "Function",
        "inputs": {
        "body": "@body('http-request')",
        "headers": {
        "path": "@{parameters('the_main_function_path')}"
        },
        "function": {
        "id": ""
        }
        },
        "runAfter": {
        "http-request": [
        "Succeeded"
        ]
        }
        },

        Notice the id disappears. This could be an issue related to ARM parameters vs logic app parameters. It appears that the function id property value cannot be a parameter. If I try to put a logic app parameter in the value, it will not deploy at all. It does not fully support ARM parameters either. Although I can deploy with an ARM parameter, it will be removed if we edit in the designer.

      • Anonymous commented  ·   ·  Flag as inappropriate

        When using parametrized function ids, adding a logic app in the designer will cause the parameterized function id to disappear.

      • granada Coder commented  ·   ·  Flag as inappropriate

        The expected format is '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/functions/{functionName}'.

        I started with this:

        "id": "[resourceId('Microsoft.Web/sites/functions', parameters('MyAzureFunctionPublishNameArmParameter'), 'HardCodedFunctionNameHere')]"

        (which works via deployment, but designer and deploy generates warnings) (and is very CLEAN)

        But I got this error:

        The workflow run action 'HardCodedFunctionNameHere' of type 'Function' has a malformed value '[resourceId('Microsoft.Web/sites/functions', parameters('MyAzureFunctionPublishNameArmParameter'), 'HardCodedFunctionNameHere')]' for property 'function.id'. The expected format is '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/functions/{functionName}'.

        So I went to this (trying to satisfy the error message)

        "id": "[concat('/subscriptions/',subscription().subscriptionId,'/resourcegroups/',resourceGroup().Name,
        '/providers/Microsoft.Web/sites/',parameters('MyAzureFunctionPublishNameArmParameter'),'/functions/','HardCodedFunctionNameHere')]"

        same warning messages.

        PLEASE ALLOW FOR "macros" to be used when setting values for function-calls, etc, etc.

      Feedback and Knowledge Base