在 Powershell 中修改逻辑应用程序连接

Modify Logic App Connections in Powershell

我正在尝试修改我的 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 | select -ExpandProperty Parent 它开始递归遍历这些值到看似无限的深度。我已经尝试了各种 Replace,但它总是将对象从 Microsoft.Azure.Management.Logic.Models.Resource.Workflow.Parameters 转换为 JSON。它必须保留为 Object,否则当我 Set 返回 Logic 应用程序时它会清除我的连接。

有人知道如何完成此对象的替换吗?

示例是以下屏幕截图。除了我要替换的 -d- 字符串外,我已将其匿名化。

嗯,如果我没理解错的话,你想修改连接的connectionNameconnectionId。也可以在门户 -> 逻辑应用 -> Logic app code 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