用于计算实例的GCP gcloud API过滤标签

时间:2020-10-07 03:19:48

标签: google-cloud-platform

我正在尝试查找特定项目中具有特定标签的所有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,但这似乎也不起作用。

1 个答案:

答案 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