Azure API Management中无法找到Logic App问题咨询
Azure APIM对接Logic App后端实操方案
你遇到的搜索不到Logic App的情况是常见场景,APIM自动导入Logic App的功能仅支持识别标准Logic App的默认HTTP触发器,消费级Logic App、自定义触发器路径、多工作流实例都会无法被搜索识别,你已经在后端板块找到对应Logic App实例的话,可以直接按以下步骤完成对接,不需要走自动导入流程。
前置校验
- 确认该Logic App的HTTP触发器完整调用URL可正常访问(和你Postman调用的地址一致)
- 若你使用APIM托管身份调用Logic App,需提前给APIM的系统分配托管身份授予目标Logic App的
Logic App Contributor权限;若直接用SAS密钥调用可跳过该步骤
对接操作步骤
- 进入APIM左侧「API」板块,选择需要关联Logic App的目标API(首次创建可选择「添加API」->「HTTP」类型,自定义API名称和基础路径)
- 进入API的「设计」页签,添加前端请求操作:选择对应请求方法(和Logic App触发器要求的方法一致,通常为POST),填写你想要对外暴露的API路径,比如
/api/order/process - 选中刚添加的前端操作,点击下方「后端」区域的编辑按钮
- 后端类型选择现有后端,在下拉列表中选中你之前在后端板块找到的Logic App实例,保存配置
- 进入「入站处理」规则编辑页,添加
重写URI策略,将入站路径替换为Logic App HTTP触发器的实际路径,参考策略如下:
<rewrite-uri template="/workflows/你的工作流ID/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=你的触发器SAS密钥" copy-unmatched-params="true" />
若需要避免密钥明文暴露,可提前将SAS密钥存入APIM的「命名值」模块,配置后通过{{你的命名值密钥名称}}的方式引用即可
- 进入API的「测试」页签,发送测试请求,验证返回结果是否和直接调用Logic App的结果一致
异常排查
- 调用返回404:检查重写URI的路径是否和Logic App触发器的完整路径完全匹配,不要遗漏路径参数和身份校验参数
- 调用返回401:检查SAS密钥是否有效,或者托管身份的权限是否配置正确
- 若操作的后端下拉列表仍无法找到对应Logic App:直接选择「自定义」后端,手动填入Logic App的完整调用URL即可,效果和选择现有后端完全一致
内容的提问来源于stack exchange,提问作者Anand Bhopale
相关产品推荐
相关产品推荐

