我使用ARM模板在Azure中的第二个订阅中部署逻辑应用程序,该应用程序需要在第一个订阅中触发对runbook的webhook URL的POST。
我在ARM模板中使用了对webhook URL对象的完全引用,但不幸的是,尽管没有错误,逻辑应用程序最终还是使用了一个空URI。
对webhook的引用看起来像:
"RunbookWebHook": {
"type": "string",
"defaultValue": "/subscriptions/----/resourceGroups/RunbookResources/providers/Microsoft.Automation/automationAccounts/RunbookAutomationAccount/webhooks/RunbookWebhook"
},
逻辑应用程序中webhook URI的引用示例:
"actions": {
"Runbook_Webhook": {
"runAfter": {},
"type": "Http",
"inputs": {
"headers": {
"operationName": "@{triggerBody()['data']['operationName']}",
"resourceId": "@triggerBody()?['subject']"
},
"method": "POST",
"uri": "[reference(parameters('RunbookWebHook'), '2015-10-31').uri]"
}
}
如何获得webhook URI的正确URL?
这是因为Azure中对Webhook URL的限制。
在MicroSoft文档中:https://learn.microsoft.com/en-us/azure/automation/automation-webhooks#webhook-属性
它提到URL属性(实际上是uri
字段(,并显示:
webhook的URL。这是客户端使用HTTPPOST调用的唯一地址,用于启动链接到webhook的runbook。它是在您创建webhook时自动生成的。不能指定自定义URL。
URL包含一个安全令牌,该令牌允许第三方系统调用runbook,而无需进一步的身份验证。因此,您应该像对待密码一样对待URL。出于安全原因,您只能在创建webhook时查看Azure门户中的URL。请将URL记在安全位置以备将来使用。
因此创建后无法进一步检索URL。:(