GCE 元数据 - 获取实例名称

GCE 元数据 - 获取实例名称

我正在尝试编写一个脚本,允许实例在完成任务后自行终止。到目前为止,这是我想到的:

  1. 查询元数据以获取实例主机名和区域
  2. 假设主机名与实例名相同(这安全吗?)
  3. 对主机名执行正则表达式以删除域(这安全吗?)
  4. 调用 gcloud compute instance delete [name] --zone [zone] --quiet

这一切似乎有点脆弱,我想知道是否有更好的解决方案。特别是我知道我可以查询实例 ID,但似乎所有 gcloud 命令都需要名称而不是 ID。这是正确的吗?

答案1

对于 Linux VM 实例,请尝试此脚本:

VMNAME=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/hostname | cut -d. -f1)
ZONE=$(curl -H Metadata-Flavor:Google http://metadata/computeMetadata/v1/instance/zone | cut -d/ -f4)
gcloud compute instances delete $VMNAME --zone $ZONE --quiet

您还需要确保 VM 实例的服务帐户是具有编辑权限的项目成员。

相关内容