如何在 GCP 中列出项目的最多计算实例信息?
How to list the most compute instances' info for a project in GCP?
我正在尝试列出与我的帐户关联的所有项目下存在的所有 VM,包括它们的 OS 和我能找到的任何其他标签。我已经有了项目列表,所以我正在使用的是:
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
如何获取虚拟机的 OS?可能还有更多标签?我尝试使用:
GET https://compute.googleapis.com/compute/v1/projects/{project}/aggregated/instances,没有成功,因为我无法使 requests
或 urllib
使用它。
我是否缺少来自 sdk 或其他 gcloud 命令的任何其他 python 库?
谢谢
您可以使用 --format
flag 转换输出。
有无限可能,包括:
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 example。
根据@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。
我正在尝试列出与我的帐户关联的所有项目下存在的所有 VM,包括它们的 OS 和我能找到的任何其他标签。我已经有了项目列表,所以我正在使用的是:
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
如何获取虚拟机的 OS?可能还有更多标签?我尝试使用:
GET https://compute.googleapis.com/compute/v1/projects/{project}/aggregated/instances,没有成功,因为我无法使 requests
或 urllib
使用它。
我是否缺少来自 sdk 或其他 gcloud 命令的任何其他 python 库?
谢谢
您可以使用 --format
flag 转换输出。
有无限可能,包括:
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 example。
根据@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。