在 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-
字符串外,我已将其匿名化。
嗯,如果我没理解错的话,你想修改连接的connectionName
和connectionId
。也可以在门户 -> 逻辑应用 -> 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
我正在尝试修改我的 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-
字符串外,我已将其匿名化。
嗯,如果我没理解错的话,你想修改连接的connectionName
和connectionId
。也可以在门户 -> 逻辑应用 -> 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