Можно ли передать переменную среды в сценарий запуска экземпляра виртуальной машины с помощью Python?

# #python #google-cloud-platform #google-compute-engine

Вопрос:

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

      request = service.instances().start(project=project, zone=zone, instance=instance)
     response = request.execute()
 

Экземпляр виртуальной машины, в свою очередь, запустит сценарий запуска при запуске.

Однако можно ли передать переменную среды в сценарий запуска в приведенной выше команде Python. Если да, то как бы я это сделал?

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

если переменная env равна «x»:

 run python script x.py
 

ещё:

 run python script y.py
 

и т.д…

Спасибо

Комментарии:

1. Рассматривали ли вы пользовательский атрибут виртуальной машины вместо переменной среды? (Или создайте сценарий, который считывает пользовательский атрибут и помещает значение в env var, если вы предпочитаете). cloud.google.com/compute/docs/metadata/…

Ответ №1:

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

  1. Измените набор метаданных вашей виртуальной машины, прежде чем включать ее. Вот как.
  2. Запустите виртуальную машину.
  3. В сценарии запуска запросите сервер метаданных, чтобы получить значение, настроенное на шаге 1. Как получить значения метаданных?
  4. Обработайте полученное значение, как если бы оно было переменной среды.

Я надеюсь, что это поможет вам достичь вашей цели 🙂

ИЗМЕНИТЬ: Атрибуты гостя, предложенные в комментарии
Гийома блакьера, будут работать точно так же, они являются лишь частью метаданных экземпляра.