繁体   English   中英

如何在 GCP 中列出项目的最多计算实例信息?

[英]How to list the most compute instances' info for a project in GCP?

我试图列出与我的帐户关联的所有项目下存在的所有虚拟机,包括它们的操作系统和我能找到的任何其他标签。 我已经有了项目列表,所以我正在使用的是:

 for project in project_df["project_id"]:
    subprocess.run(["gcloud config set project {}".format(project)], shell=True)
    cp = subprocess.run(["gcloud compute instances os-inventory list-instances"], shell=True)
    print(cp)

这确实有效,但我得到的唯一标签是:

NAME ZONE MACHINE_TYPE PREEMPTIBLE INTERNAL_IP EXTERNAL_IP STATUS

如何获取虚拟机的操作系统? 可能还有更多标签? 我尝试使用: GET https://compute.googleapis.com/compute/v1/projects/{project}/aggregated/instances ,但没有成功,因为我无法发出requestsurllib使用它。

sdk 中是否还有其他 python 库或我缺少的其他 gcloud 命令?

谢谢

您可以使用--format标志来转换 output。

有无限的可能性,包括:

gcloud compute instances list \
--project=${PROJECT} \
--format="value(name,status,zone,id,kind)"

gcloud compute instances list \
--project=${PROJECT} \
--format="json"

gcloud compute instances list \
--project=${PROJECT} \
--format="yaml"

但是,您最好使用Compute API而不是使用 Python 中的 shell 来为您运行命令。

Compute API 是gcloud CLI 的基础,直接使用它可以让您受益于能够配置它并直接使用 Python 数据类型接收结果。

有关基本示例,请参阅 Google 文档中的 Python 示例

根据@DazWilkin 的回答,对我的案例有用的是:

我运行了gcloud compute instances list --format=flattened ,它向我展示了许多(如果不是全部)可能的标签。 然后我找到了在你运行gcloud compute instances list时没有出现的那些,然后运行以下命令来获得我想要的:

gcloud compute instances list --format="csv(name, zone, labels.compute_machine_type, canIpForward,  labels.os, creationTimestamp, status)" > compute_info.csv

这样我也避免了使用计算 API。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM