我正在尝试查找特定项目中具有特定标签的所有VM。 可行
gcloud compute instances list --project myproject --filter="(name=myvm) AND --filter="tags.items~*ngf*"
但是取出虚拟机名称不起作用
gcloud compute instances list --project myproject --filter="tags.items~*ngf*"
错误消息是
ERROR: (gcloud.compute.instances.list) Filter expression RE pattern [*ngf*]: nothing to repeat at position 0
有什么想法吗?我尝试在过滤器中使用标签,而不是使用tag.items,但这似乎也不起作用。
答案 0 :(得分:0)
您遇到的问题是由于您使用的正则表达式。
*
使结果RE匹配先前RE的0个或多个重复,并尽可能地重复。 ab *将匹配“ a”,“ ab”或“ a”,后跟任意数量的“ b”。
您可以检查以下link,以获取有关正则表达式的更多信息。
关于您的请求:
我正在尝试查找特定项目中具有特定标签的所有VM。
请尝试使用以下命令:
gcloud compute instances list --filter="(tags.items ~ <<YOUR-NETWORK-TAG>>*)" --project <<MY-PROJECT>>
或
gcloud compute instances list --filter="(tags.items=<<YOUR-NETWORK-TAG>>)" --project <<MY-PROJECT>>
现在对于标签,您可以使用类似以下内容的
:gcloud compute instances list --filter="(tags.items=<<YOUR-NETWORK-TAG>>) AND (labels.<<MY-LABEL>>:*)" --project <<MY-PROJECT>>
您可以检查此链接以找到更多示例:gcloud topic filters