我正在尝试修改 Azure 逻辑应用的连接,以支持从开发到测试再到生产的自动部署。其中一部分是将连接名称和 ID 从 -d-
更新为 -t-
再到 -p-
。
我找不到办法做到这一点。
# Get Logic App
$LogicApp = Get-AzLogicApp -ResourceGroupName $RG_Name -Name $LA_Name
#Display Connections
$LogicApp.Parameters.'$connections'.Value
我想要修改的值位于Parent
属性中,但我不太了解该对象的结构。如果我去展开 $LogicApp.Parameters.'$connections'.Value |选择 -ExpandProperty Parent
它开始递归遍历这些值,达到看似无限的深度。我尝试了各种 Replace
但它总是将对象从 Microsoft.Azure.Management.Logic.Models.Resource.Workflow.Parameters
转换为 JSON
。它必须保留为对象
,否则当我设置
回逻辑应用时它会清除我的连接。
有人知道如何完成此对象的替换吗?
最佳答案
好吧,如果我理解正确的话,您想要修改连接的 connectionName
和 connectionId
。也可以在门户 -> 逻辑应用 -> 逻辑应用代码 View
中看到,如下所示。
我注意到您的屏幕截图中有四个连接。在我的示例中,只有两个连接,即 Root : {azureblob, sql}
。
尝试下面的命令,它在我这边工作得很好。根据您自己的情况,请像示例一样添加其他连接线。
$logicapp = Get-AzResource -ResourceGroupName <ResourceGroupName> -ResourceType Microsoft.Logic/workflows -ResourceName "<logic app name>"
$logicapp.Properties.parameters.'$connections'.value.azureblob.connectionId = "/subscriptions/xxxxxxxx/resourceGroups/<ResourceGroupName>/providers/Microsoft.Web/connections/azureblob"
$logicapp.Properties.parameters.'$connections'.value.azureblob.connectionName = "azureblob"
$logicapp.Properties.parameters.'$connections'.value.sql.connectionId = "/subscriptions/xxxxxxxx/resourceGroups/<ResourceGroupName>/providers/Microsoft.Web/connections/sql"
$logicapp.Properties.parameters.'$connections'.value.sql.connectionName = "sql"
$logicapp | Set-AzResource -Force
运行脚本后,您可以使用原来的命令来检查结果。
$LogicApp = Get-AzLogicApp -ResourceGroupName <ResourceGroupName> -Name <logic app name>
$LogicApp.Parameters.'$connections'.Value
关于azure - 在 Powershell 中修改逻辑应用连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57701662/