Azure 正在获取ARM中逻辑应用程序的回调url

Azure 正在获取ARM中逻辑应用程序的回调url,azure,azure-functions,azure-resource-manager,azure-logic-apps,Azure,Azure Functions,Azure Resource Manager,Azure Logic Apps,我正在部署一个ARM模板,其中包括: azure功能+逻辑应用程序 以下是我创建的一个简单流程: azure函数中的一个方法调用logic app。让我们将该方法命名为“A”。逻辑应用程序显示为“B”: A叫B 逻辑应用程序(B)包含“回调URL”。方法(A)需要有一个指向逻辑应用程序(B)的回调url。我需要通过“复制”此值来设置此变量: 在我的azure应用程序功能中,我需要将此值设置为应用程序设置 现在,我的手臂看起来(越来越少)像这样: { "$schema": "https://

我正在部署一个ARM模板,其中包括: azure功能+逻辑应用程序

以下是我创建的一个简单流程: azure函数中的一个方法调用logic app。让我们将该方法命名为“A”。逻辑应用程序显示为“B”:

A叫B

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

在我的azure应用程序功能中,我需要将此值设置为应用程序设置

现在,我的手臂看起来(越来越少)像这样:

{
  "$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": {}
}
我的问题是:

  • 是否可以在部署期间强制逻辑应用程序“callbackUrl”
  • 部署逻辑应用程序并在azure函数中设置“应用程序设置”后,是否可以获取“逻辑应用程序”回调URL
  • 如果没有-我是否需要编写powershell脚本来处理这个问题
  • 如何从资源管理器访问此值
  • 我在路径中看到“accessEndpoint”: {subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{logicAppName}?api版本=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=

    由于您询问如何在ARM中执行此操作,以下是假设LA有一个名为手动的触发器的解决方案:

    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]"
            }
          }
        ]
      }
    }
    

    据我所知,您可以使用powershell获取回拨url或获取回拨url。张白兰度,您的解决方案对我来说很好,效果很好:)谢谢,老兄!