# #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. Как получить значения метаданных?
- Обработайте полученное значение, как если бы оно было переменной среды.
Я надеюсь, что это поможет вам достичь вашей цели 🙂
ИЗМЕНИТЬ: Атрибуты гостя, предложенные в комментарии
Гийома блакьера, будут работать точно так же, они являются лишь частью метаданных экземпляра.