【发布时间】: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": {}
}
我的问题是:
- 是否可以在部署期间强制执行逻辑应用“callbackUrl”?
- 是否可以在部署逻辑应用并在 Azure Functions 中设置“应用设置”后获取“逻辑应用”回调 URL?
- 如果不需要 - 我是否需要编写一个 powershell 脚本来处理它?
- 如何从资源管理器访问此值?
我在路径中看到“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}
【问题讨论】:
-
Brando Zhang,你的解决方案对我来说没问题,效果很好:) 谢谢,伙计!
标签: azure azure-functions azure-resource-manager azure-logic-apps