如何通过REST API获取并修改标准逻辑应用连接的JSON视图?
问题:如何通过REST API修改标准逻辑应用(Standard)的连接JSON视图
我想要使用REST API修改标准类型(Standard)逻辑应用(Logic App)连接中的JSON视图,但不知道对应的实现API。曾通过开发工具获取了URL,但无法正常工作:
https://management.azure.com/subscriptions/<SubscriptionId>/resourceGroups/<ResourceGroups>/providers/Microsoft.Web/sites/<LogicAppName>/deployWorkflowArtifacts?api-version=2018-11-01
注:由于JSON视图内容量大且动态,我希望先通过GET请求获取内容,修改后再通过请求体覆盖原JSON视图。我使用PowerShell编写脚本,若能提供可用示例更佳。
我的问题是:是否存在直接获取和修改JSON视图的REST API?若没有,该如何实现?
更新1:测试脚本及错误反馈
我使用Az rest测试时未得到正确反馈,测试脚本如下:
$token = $(Token) $header = @{authorization = "Bearer $token"} $connectionsText = az rest --method get --uri https://<logic-app-name>.scm.azurewebsites.net/api/vfs/site/wwwroot/connections.json --resource "https://management.azure.com/" --headers "$header" $connectionsObj = $connectionsText | ConvertFrom-Json $connectionsObj | Add-Member -Type NoteProperty -Name "TestName" -Value "TestValue" $connectionsText = $connectionsObj | ConvertTo-Json Write-Host "This is the json view:$connectionsText" echo $connectionsText > connections.json
但得到了错误反馈(对应截图)。
解决方案
可用的API:Kudu REST API
标准逻辑应用的连接JSON视图(connections.json)存储在应用的文件系统中,可通过Kudu REST API直接读写,这是最直接的方式。你之前的脚本存在3个关键问题:
az rest的--resource参数错误,Kudu的资源标识符应为https://azurewebsites.net/,而非https://management.azure.com/- Headers传递格式错误,无需用变量包裹,直接指定键值对即可
- 缺少上传修改后JSON的PUT请求步骤,仅写到本地文件无法同步到Azure
修正后的PowerShell脚本示例
# 替换为你的逻辑应用名称 $logicAppName = "<your-logic-app-name>" # 获取Kudu API的访问令牌 $token = $(az account get-access-token --resource "https://azurewebsites.net/" --query accessToken -o tsv) # 1. 获取当前connections.json内容 $apiUri = "https://$logicAppName.scm.azurewebsites.net/api/vfs/site/wwwroot/connections.json" $currentContent = az rest --method get --uri $apiUri --headers "Authorization=Bearer $token" # 2. 修改JSON内容(示例:添加新属性) $jsonObj = $currentContent | ConvertFrom-Json $jsonObj | Add-Member -Type NoteProperty -Name "TestName" -Value "TestValue" -Force $updatedContent = $jsonObj | ConvertTo-Json -Depth 10 # 3. 上传修改后的JSON到Azure az rest --method put --uri $apiUri ` --headers "Authorization=Bearer $token" ` --headers "Content-Type=application/json" ` --body "$updatedContent" Write-Host "connections.json已成功更新"
补充说明
- 确保你拥有目标逻辑应用的Contributor权限,或至少具备Kudu站点的访问权限
- Azure Management API没有直接操作
connections.json的端点,若需通过ARM模板方式更新,可针对Microsoft.Web/sites/config资源的web配置进行部署,但灵活性不如Kudu API - 若需管理连接实例而非JSON视图,可使用
Microsoft.Web/sites/connections资源API,但这与修改connections.json的场景不同
内容的提问来源于stack exchange,提问作者Joy
相关产品推荐
相关产品推荐

