通过 Azure CLI 为资源分配多个标签会在使用变量时产生一个大标签
Assigning multiple tags to a resource via Azure CLI results in one big tag when using a variable
通过 az cli (bash) 使用标签列表创建 VM 时。
首先设置这个变量:
tags='env=qa servertype=frontend Distinct=qa-frontend25 CI=Yes DataDog:True'
但是当运行下面的命令在bash
az vm create ... --tags "${tags}"
它创建一个具有键 env
和值 qa servertype=frontend Distinct=qa-frontend25 CI=Yes DataDog=True
的长标签
来自 Azure CLI documentation
--tags
Space-separated tags in 'key[=value]' format.
这里缺少什么?
如果你想为一个虚拟机创建多标签,你应该像这样添加参数--tags
:
--tags 'tag1=test1' 'tag2=test2'
结果是这样的:
它也显示在您提供的文件az vm create
中。跟你有误会
--tags Space-separated tags in 'key[=value]' format. Use "" to clear existing tags.
更新
是的,你可以在一个变量中设置多标签,然后像这样在命令中获取它:
tags="tag1=test1 tag2=test2"
az vm create -g resourceGroupName -n vmName --image image --tags $tags
它将很好地工作并回答@Johan,如果您删除引号它也可以。这是一个很好的问题。实际上,该变量在 CLI 命令中的作用如下:
--tags $tags -> --tags tag1=test1 tag2=test2
就像在bash中使用echo $tags
一样。
没有你想要的那么花哨,但这是我以前用过并确认仍然有效的一个。
tags1="tag1=test1"
tags2="tag2=test2"
az vm create -n MyVm2 -g MyResourceGroup --image UbuntuLTS --tags $tags1 $tags2
还没有找到将标签分组到一个变量中的方法。
希望对您有所帮助。
tags="tag1=test1 tag2=test2" 的问题似乎是 Powershell 将其作为 1 个字符串传递给 az cli 命令,这样 az cli 就不会将其视为"Space-separated标签”,但作为单个标签。
对我有用的解决方案是将 $tags 定义为数组。然后它很好地扩展以供 az cli 解释。像这样:
$Tags=@("Purpose=Demo","Created=$DateShort")
az <命令> --tags $Tags
通过 az cli (bash) 使用标签列表创建 VM 时。
首先设置这个变量:
tags='env=qa servertype=frontend Distinct=qa-frontend25 CI=Yes DataDog:True'
但是当运行下面的命令在bash
az vm create ... --tags "${tags}"
它创建一个具有键 env
和值 qa servertype=frontend Distinct=qa-frontend25 CI=Yes DataDog=True
来自 Azure CLI documentation
--tags
Space-separated tags in 'key[=value]' format.
这里缺少什么?
如果你想为一个虚拟机创建多标签,你应该像这样添加参数--tags
:
--tags 'tag1=test1' 'tag2=test2'
结果是这样的:
它也显示在您提供的文件az vm create
中。跟你有误会
--tags Space-separated tags in 'key[=value]' format. Use "" to clear existing tags.
更新
是的,你可以在一个变量中设置多标签,然后像这样在命令中获取它:
tags="tag1=test1 tag2=test2"
az vm create -g resourceGroupName -n vmName --image image --tags $tags
它将很好地工作并回答@Johan,如果您删除引号它也可以。这是一个很好的问题。实际上,该变量在 CLI 命令中的作用如下:
--tags $tags -> --tags tag1=test1 tag2=test2
就像在bash中使用echo $tags
一样。
没有你想要的那么花哨,但这是我以前用过并确认仍然有效的一个。
tags1="tag1=test1"
tags2="tag2=test2"
az vm create -n MyVm2 -g MyResourceGroup --image UbuntuLTS --tags $tags1 $tags2
还没有找到将标签分组到一个变量中的方法。
希望对您有所帮助。
tags="tag1=test1 tag2=test2" 的问题似乎是 Powershell 将其作为 1 个字符串传递给 az cli 命令,这样 az cli 就不会将其视为"Space-separated标签”,但作为单个标签。
对我有用的解决方案是将 $tags 定义为数组。然后它很好地扩展以供 az cli 解释。像这样:
$Tags=@("Purpose=Demo","Created=$DateShort")
az <命令> --tags $Tags