Назад | Перейти на главную страницу

Метаданные GCE - получить имя экземпляра

Я пытаюсь написать сценарий, который позволяет экземпляру завершать работу, когда он выполнил свои задачи. Пока это то, что я придумал:

  1. запросить метаданные, чтобы получить имя хоста и зону экземпляра
  2. предположим, что имя хоста совпадает с именем экземпляра (это безопасно?)
  3. выполнить регулярное выражение для имени хоста, чтобы вырезать домен (это безопасно?)
  4. вызвать экземпляры вычислений gcloud удалить [имя] --zone [зона] --quiet

Все это кажется немного хрупким, и мне было интересно, есть ли лучшее решение. В частности, я знаю, что могу запросить идентификатор экземпляра, но кажется, что все команды gcloud ожидают имя, а не идентификатор. Это верно?

Для экземпляров виртуальных машин Linux попробуйте этот сценарий:

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

Вам также необходимо убедиться, что учетная запись службы экземпляра виртуальной машины является участником проекта с разрешением на редактирование.