无法从ARM模板获取标准逻辑应用(Logic app)工作流URL的问题咨询
单租户逻辑应用获取HTTP触发器URL失败的原因及解决方法
失效原因
- 你使用的
Microsoft.Logic/workflows相关ARM表达式和REST API,仅适用于多租户消费型逻辑应用。单租户逻辑应用基于Azure Functions运行时部署,资源提供者为Microsoft.Web,不属于Microsoft.Logic资源体系,因此调用对应接口会返回找不到工作流的结果。 - 后续调用的
Microsoft.Web/sites/functions/listsecrets接口是用于获取普通Azure Functions的调用地址,单租户逻辑应用的HTTP触发器不属于标准Function资源,因此返回的地址不是实际的触发器调用URL。
可行解决方法
ARM模板获取
使用对应单租户逻辑应用资源体系的ARM表达式即可,示例如下:
listCallbackUrl(resourceId('Microsoft.Web/sites/workflows/triggers', '<App服务名称>', '<逻辑应用工作流名称>', '<HTTP触发器名称>'), '2022-09-01').value
REST API调用
正确的REST API请求格式如下:
POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/workflows/{workflowName}/triggers/{triggerName}/listCallbackUrl?api-version=2022-09-01
调用时无需传入请求体,调用身份需具备对应逻辑应用的触发器操作权限,返回结果中的value字段即为完整的带签名HTTP触发器URL。
Azure CLI获取
你也可以直接用Azure CLI快速获取,命令示例:
az rest --method post --uri "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{siteName}/workflows/{workflowName}/triggers/{triggerName}/listCallbackUrl?api-version=2022-09-01" --query value -o tsv
注意事项
- 触发器名称需与逻辑应用内定义的HTTP触发器名称完全一致,大小写敏感
- 若单租户逻辑应用开启了访问限制或VNet集成,需确保调用管理接口的客户端网络在允许访问范围内
- 请使用2022-09-01及以上的API版本,低版本API不支持单租户逻辑应用的相关操作
内容的提问来源于stack exchange,提问作者K.J.M.O.
相关产品推荐
相关产品推荐

