使用REST API更新Logic App连接JSON视图遇405错误,求正确API地址
问题
我希望通过REST API更新Logic App连接的JSON视图,计划先通过GET请求获取内容,修改后提交以覆盖原视图。
目前通过F12开发者工具,使用以下URL获取JSON视图内容:
https://management.azure.com/subscriptions/<subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Web/sites/<LogicAppName>/workflowsconfiguration/connections?api-version=2018-11-01
但使用同一URL调用POST/PUT方法时,返回错误:
The remote server returned an error: (405) Method Not Allowed.
示例请求代码:
$token = $(Token) $headers = @{ "Authorization" = ('Bearer {0}' -f $token) "If-Match" = '*' } $url = "https://management.azure.com/subscriptions/<subscriptions>/resourceGroups/<resourceGroups>/providers/Microsoft.Web/sites/<LogicAppName>/workflowsconfiguration/connections?api-version=2018-11-01" Invoke-RestMethod -Uri $url -Method Post -Body $JsonView -ContentType "application/json" -Headers $headers
尝试另一URL仍出现相同错误:
https://management.azure.com/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroups>/providers/Microsoft.Web/sites/<LogicAppName>/deployWorkflowArtifacts?api-version=2018-11-01
请问更新JSON视图的正确REST API地址是什么?
解答
/workflowsconfiguration/connections端点仅支持GET请求
你当前用来获取连接配置的/workflowsconfiguration/connections端点设计上只允许GET操作,因此调用PUT/POST会返回405 Method Not Allowed,这是正常现象。批量更新连接配置的正确端点
针对部署在Microsoft.Web/sites下的标准Logic App,批量更新连接配置的正确REST API是deployWorkflowArtifacts,但需要注意以下关键点:
- 使用POST方法
- 升级API版本至
2021-03-01或更高(旧版本如2018-11-01已不再支持该端点的POST操作) - 请求体需按规范构造,将修改后的连接配置嵌套在
artifacts.connections字段中
示例PowerShell请求:
$token = $(Token) $headers = @{ "Authorization" = ('Bearer {0}' -f $token) "If-Match" = '*' } $url = "https://management.azure.com/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroups>/providers/Microsoft.Web/sites/<LogicAppName>/deployWorkflowArtifacts?api-version=2021-03-01" # 构造符合要求的请求体,将修改后的连接配置传入connections字段 $requestBody = @{ artifacts = @{ connections = $JsonView # 此处为你从GET请求获取并修改后的连接配置JSON } } | ConvertTo-Json -Depth 10 Invoke-RestMethod -Uri $url -Method Post -Body $requestBody -ContentType "application/json" -Headers $headers
- 更新单个连接的备选端点
如果仅需更新单个连接,可直接使用单个连接的PUT端点:
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Web/sites/{logicAppName}/connections/{connectionName}?api-version=2021-03-01
请求体传入该连接的完整配置JSON即可。
- 额外注意事项
- 确保你的访问令牌拥有足够权限(如Logic App Contributor或Contributor角色)
- 验证请求体的JSON结构与GET获取的原始配置完全匹配,避免格式错误
内容的提问来源于stack exchange,提问作者Joy
相关产品推荐
相关产品推荐

