You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过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个关键问题:

  1. az rest的--resource参数错误,Kudu的资源标识符应为https://azurewebsites.net/,而非https://management.azure.com/
  2. Headers传递格式错误,无需用变量包裹,直接指定键值对即可
  3. 缺少上传修改后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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 07:17:08