通过带有标签列表的az cli(bash)创建VM时。
首先设置此变量:
tags='env=qa servertype=frontend Distinct=qa-frontend25 CI=Yes DataDog:True'
但是在bash shell中运行以下命令时,
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.
这里缺少什么?
答案 0 :(得分:1)
如果要为一个VM创建多标签,则应像这样添加参数--tags
:
--tags 'tag1=test1' 'tag2=test2'
结果如下:
它还会在您提供的文档az vm create
中显示。与您有误会。
-以'key [= value]'格式标记以空格分隔的标记。使用“”清除现有标签。
更新
是的,您可以在变量中设置多标签,然后将其放入命令中,如下所示:
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
。
答案 1 :(得分:0)
不像您想的那样花哨,但这是我以前使用过的,并确认仍可以使用。
tags1="tag1=test1"
tags2="tag2=test2"
az vm create -n MyVm2 -g MyResourceGroup --image UbuntuLTS --tags $tags1 $tags2
找不到将标签分组为一个变量的方法。
希望这会有所帮助。