我想知道是否有人可以提供帮助。
我有一些正在运行的实例。我想获取实例启动盘的映像名称(例如,debian-10-buster-v20200618)。它显示在 GCP 控制台中,但这些命令都没有获取它:
gcloud compute instances list
gcloud compute instances list --format=json
GCloud 有没有办法访问这个值?某些东西(JS?)可以直接进入 API 吗?也许访问图像系列会更有用,但这可能需要从图像名称派生。可能是我遗漏了一些明显的东西:/
任何想法或建议都非常感谢!
里克
解决方案 创建实例
gcloud compute instances create instance-1 --zone=europe-west1-b
确定它所基于的图像
gcloud compute disks describe instance-1 --zone=europe-west1-b --format=json |
jq -r .sourceImage
(我使用 JQ 过滤响应;W_B -- 非常感谢 BTW -- 使用 Awk)
您可以使用 列出磁盘
[gcloud compute disks list][1]
。您提供的名称 (
debian-10-buster-v20200618
) 看起来更像磁盘的映像名称。您可以使用gcloud compute images list
与disks list
.如果您只想显示第一列并按 nanme 排序,那么您可以执行
gcloud compute disks list --sort-by=NAME | awk '{print $1}'
.这只是您可以做的一个示例 - 如果您指定所需的输出,那么我可以编辑我的答案。
以下是如何使用 AWK处理任何文本输出并使其更适合您的需求。
如果您指定此命令的所需输出,我将编辑问题并发布确切的命令。
如果排序能力
gcloud
不够,可以使用内置sort
命令。获取源映像名称,使用哪个 VM 的磁盘创建
gcloud compute disks describe yourinstancename --zone=myzone | grep image
。结果将与此类似:
https://www.googleapis.com/compute/v1/projects/windows-cloud/global/images/windows-server-2012-r2-dc-v20200609
您可以进一步使用 AWK 来“整理”结果并仅获取图像名称(用于脚本等)。