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

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

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

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

2
задан 26 May 2015 в 18:51
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 является членом проекта с правами на редактирование.

4
ответ дан 3 December 2019 в 10:02

Теги

Похожие вопросы