GCP:查询具有特定标签的所有项目的所有实例
GCP: query all instances on all projects with specific label
我正在寻找 GCP 中的自动化解决方案,以每月查询具有特定标签的所有项目的所有实例;例如,“测试”。
我希望结果按项目(ID 或名称)分组
有办法吗?
欢迎光临!
描述您尝试过的内容会对您的问题有所帮助。
LABEL_KEY="test"
PROJECTS=$(gcloud projects list --format="value(projectId)")
for PROJECT in ${PROJECTS}
do
gcloud compute instances list \
--project=${PROJECT} \
--filter=labels=${LABEL_KEY} \
--format="value(name)"
done
上述方法的问题在于,如果项目中未启用 Compute Engine 服务,系统会提示您启用它(您可能不希望这样做)。
因此,您可以检查每个 ${PROJECT}
以获取已启用服务的列表,按 compute.googleapis.com
过滤,然后,如果它不在列表中,则传递该项目:
SERVICE="compute.googleapis.com"
gcloud services list \
--project=${PROJECT} \
--filter="name.scope(services)=${SERVICE}" \
--format="value(name)"
我正在寻找 GCP 中的自动化解决方案,以每月查询具有特定标签的所有项目的所有实例;例如,“测试”。
我希望结果按项目(ID 或名称)分组
有办法吗?
欢迎光临!
描述您尝试过的内容会对您的问题有所帮助。
LABEL_KEY="test"
PROJECTS=$(gcloud projects list --format="value(projectId)")
for PROJECT in ${PROJECTS}
do
gcloud compute instances list \
--project=${PROJECT} \
--filter=labels=${LABEL_KEY} \
--format="value(name)"
done
上述方法的问题在于,如果项目中未启用 Compute Engine 服务,系统会提示您启用它(您可能不希望这样做)。
因此,您可以检查每个 ${PROJECT}
以获取已启用服务的列表,按 compute.googleapis.com
过滤,然后,如果它不在列表中,则传递该项目:
SERVICE="compute.googleapis.com"
gcloud services list \
--project=${PROJECT} \
--filter="name.scope(services)=${SERVICE}" \
--format="value(name)"