【问题标题】:Getting callback url for logic app in ARM获取 ARM 中逻辑应用的回调 url
【发布时间】:2018-04-11 06:37:53
【问题描述】:

我正在部署一个 ARM 模板,其中包括: 天蓝色函数 + 逻辑应用。

link 之后,我创建了一个简单的流程: 天蓝色函数中的一种方法调用逻辑应用程序。让我们将方法命名为“A”。逻辑应用为“B”:

A 呼叫 B。

逻辑应用 (B) 包含“回调 URL”。方法 (A) 需要有一个到逻辑应用 (B) 的回调 url。我需要通过“复制”这个值来设置这个变量:

在我的天蓝色应用程序功能中,我需要将此值设置为应用程序设置。

现在,我的 ARM 看起来(越来越少)这样:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    //(...)
  },
  "variables": {
    //(...)
  },
  "resources": [
    {
      "type": "Microsoft.Storage/storageAccounts",
      //(...)
    },
    {
      "type": "Microsoft.Web/serverfarms",
      //(...)
    },
    {
      "apiVersion": "2015-08-01",
      "type": "Microsoft.Web/sites",
      "name": "[variables('functionAppName')]",
      "location": "[resourceGroup().location]",
      "kind": "functionapp",
      "dependsOn": [
        "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
        "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]"
      ],
      "resources": [
        {
          "apiVersion": "2015-08-01",
          "name": "web",
          "type": "sourcecontrols",
          "dependsOn": [
            "[resourceId('Microsoft.Web/Sites', variables('functionAppName'))]"
          ],
          "properties": {
            "RepoUrl": "[parameters('repoURL')]",
            "branch": "[variables('branch')]",
            "IsManualIntegration": true
          }
        }
      ],
      "properties": {
        "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('appServicePlanName'))]",
        "siteConfig": {
          "appSettings": [
            {
              "name": "AzureWebJobsDashboard",
              "value": "[concat('DefaultEndpointsProtocol=https;AccountName=', variables('storageAccountName'), ';AccountKey=', listKeys(variables('storageAccountid'),'2015-05-01-preview').key1)]"
            },
            //next my app settings
          ]
        }
      }
    },
    {
      "name": "[variables('logicAppName')]",
      "type": "Microsoft.Logic/workflows",
      "location": "[resourceGroup().location]",
      "apiVersion": "2016-06-01",
      "dependsOn": [
        "[resourceId('Microsoft.Web/connections', variables('servicebusConnectionName'))]",
        "[resourceId('Microsoft.Web/sites/sourcecontrols', variables('functionAppName'), 'web')]"
      ],
      "tags": {
        "displayName": "order-create"
      },
      "properties": {
        "definition": {
          "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
          "actions": {
            //(...)
          },
          "parameters": {
            "$connections": {
              "defaultValue": {},
              "type": "Object"
            }
          },
          "triggers": {
            "manual": {
              "type": "Request",
              "kind": "Http",
              "inputs": {
                "schema": {}
              }
            }
          },
          "contentVersion": "1.0.0.0",
          "outputs": {}
        },
        "parameters": {
          "$connections": {
            "value": {
              "servicebus": {
                "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/', 'servicebus')]",
                "connectionId": "[resourceId('Microsoft.Web/connections', variables('servicebusConnectionName'))]",
                "connectionName": "[variables('servicebusConnectionName')]"
              }
            }
          }
        }
      }
    },
    {
      "type": "MICROSOFT.WEB/CONNECTIONS",
      "apiVersion": "2016-06-01",
      "name": "[variables('servicebusConnectionName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "api": {
          "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', resourceGroup().location, '/managedApis/', 'servicebus')]"
        },
        "displayName": "[parameters('servicebus_1_Connection_DisplayName')]",
        "parameterValues": {
          "connectionString": "[parameters('servicebus_1_connectionString')]"
        }
      }
    }
  ],
  "outputs": {}
}

我的问题是:

  1. 是否可以在部署期间强制执行逻辑应用“callbackUrl”?
  2. 是否可以在部署逻辑应用并在 Azure Functions 中设置“应用设置”后获取“逻辑应用”回调 URL?
  3. 如果不需要 - 我是否需要编写一个 powershell 脚本来处理它?
  4. 如何从资源管理器访问此值?

我在路径中看到“accessEndpoint”: https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{logicAppName}?api-version= 2016-06-01

但是一旦我在我的应用设置中使用了这个值,我就会拒绝访问。

来自逻辑应用站点的回调 URL 看起来很熟悉: https://{server}.logic.azure.com:443/workflows/{workflow}/runs/{someid}/contents/TriggerInputs?api-version= 2016-06-01&se=2017-10-30T13%3A34%3A27.3219438Z&sp=%2Fruns%2someid2%2Fcontents%2FTriggerInputs%2Fread&sv=1.0&sig={someid3}

【问题讨论】:

  • 据我所知,您可以使用 powershell get call back url methodrest api 来获取回调 url。
  • Brando Zhang,你的解决方案对我来说没问题,效果很好:) 谢谢,伙计!

标签: azure azure-functions azure-resource-manager azure-logic-apps


【解决方案1】:

由于您询问如何在 ARM 中执行此操作,因此这里是假设 LA 有一个名为 ma​​nual 的触发器的解决方案:

listCallbackUrl(resourceId('resource-group-name','Microsoft.Logic/workflows', 'logic-app-name', 'manual'), '2016-06-01').value

如果要将逻辑应用和函数应用部署到同一资源组,则可以排除资源组名称。

您可以通过以下方式将回调 URL 添加到您的函数设置中:

{ 
  "type": "Microsoft.Web/sites",
  "kind": "functionapp",
  "name": "[variables('function_app_name')]",
  "apiVersion": "2016-08-01",
  "location": "[resourceGroup().location]",
  "identity": { "type": "SystemAssigned" },
  "properties": {
    "serverFarmId": "[resourceId('Microsoft.Web/serverfarms', variables('function_hosting_plan_name'))]",
    "siteConfig":
    {
      "alwaysOn": true,
      "appSettings": [
        {
          "name": "Logic_App_Url",
          "value": "[listCallbackUrl(resourceId('resource-group-name','Microsoft.Logic/workflows/triggers', 'logic-app-name', 'manual'), '2016-06-01').value]"
        }
      ]
    },
    "resources": [
      {
        "apiVersion": "2015-08-01",
        "name": "appsettings",
        "type": "config",
        "dependsOn": [
          "[resourceId('Microsoft.Storage/storageAccounts', variables('storage_account_name'))]",
          "[resourceId('Microsoft.Web/Sites', variables('function_app_name'))]"
        ],
        "properties": {
          "Logic_App_Url": "[listCallbackUrl(resourceId('resource-group-name','Microsoft.Logic/workflows/triggers', 'logic-app-name', 'manual'), '2016-06-01').value]"
        }
      }
    ]
  }
}

【讨论】:

    猜你喜欢
    • 2013-08-23
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-28
    • 1970-01-01
    • 2021-02-02
    • 2018-07-26
    相关资源
    最近更新 更多