我想知道是否有人可以帮忙。
我有一些正在运行的实例。我想获取实例启动盘的映像名称(例如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——顺便说一句非常感谢——使用 Awk)
答案1
您可以使用 列出磁盘[gcloud compute disks list][1]
。
您提供的名称(debian-10-buster-v20200618
)看起来更像是图像磁盘的名称。您可以gcloud compute images list
按照与 相同的方式使用disks list
。
如果您只希望显示第一列并按名称排序,那么您可以这样做gcloud compute disks list --sort-by=NAME | awk '{print $1}'
。
这只是您可以做的一个例子 - 如果您指定了所需的输出,那么我可以编辑我的答案。
以下是如何使用 AWK处理任何文本输出并使其更适合您的需要。
如果您指定了此命令的期望输出,我将编辑问题并发布确切的命令。
如果排序功能gcloud
不够,你可以使用内置的sort
命令。
要获取创建虚拟机磁盘的源映像名称,请使用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 来“整理”结果并获取图像名称(用于脚本编写等)。