gpt4 book ai didi

azure - az 使用变量更新服务端点

转载 作者:行者123 更新时间:2023-12-03 04:56:29 25 4
gpt4 key购买 nike

我正在尝试使用更新命令将多个服务端点添加到子网,并使用一个变量来表示 SE

当它运行时,它会失败并显示错误,指出该数组正在使用无效的服务名称。

在没有 SE 变量的情况下运行命令时,它运行不会出现任何问题。

$SE = "Microsoft.KeyVault Microsoft.Storage"

az network vnet subnet update --service-endpoints $SE --resource-group MyRg1 --vnet-name MyVnet --name MySnet

## Used to display the varaible format
Write-host "az network vnet subnet update --service-endpoints $SE --resource-group MyRg1 --vnet-name MyVnet --name MySnet"

使用循环并添加每个 SE 不是一个好的选择,因为更新 cmd 是幂等的。

最佳答案

这与 powershell 处理变量的方式有关;您传入的 $SE 是单个位置参数,而 az 客户端将它们解析为不同的。这是 powershell 的常见问题。例如,考虑一个打印命令行参数的应用程序:

> $SE = "my args"
> MyExe.exe $SE something else

输出将是:

arg0: MyExe.exe
arg1: my args
arg2: something
arg3: else

要纠正此问题,您需要指示 powershell 将字符串拆分为数组,该数组(当它为 az 构建命令行时)会拆分为多个参数:

az network vnet subnet update --service-endpoints $($SE -split ' ') --resource-group MyRg1 --vnet-name MyVnet --name MySnet

关于azure - az 使用变量更新服务端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68175080/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com