Переменные среды экземпляра

У меня есть несколько экземпляров Google Compute Engine, и для каждого я установил метаданные экземпляра, при условии, что они доступны в самом экземпляре как переменная среды, но они не отображаются. Затем я прочитал здесь, что мне нужно запросить сервер метаданных для получения этих данных, но это просто возвращает 403 неавторизованный, когда запустить из самого экземпляра. Есть ли способ получить доступ к метаданным в виде переменных среды?


person regretoverflow    schedule 29.04.2014    source источник


Ответы (1)


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

Например, это получит встроенные метаданные tags:

curl "http://metadata.google.internal/computeMetadata/v1/instance/tags" \
    -H "Metadata-Flavor: Google"

в то время как это получит ваши пользовательские метаданные для атрибута foo:

curl "http://metadata.google.internal/computeMetadata/v1/<instance|project>/attributes/foo" \
    -H "Metadata-Flavor: Google"
person Christopher Wirt    schedule 02.05.2014
comment
А, это имеет смысл. У меня сложилось впечатление, что метаданные, которые я добавляю в проект, автоматически устанавливаются в экземпляре виртуальной машины как переменные среды, но похоже, что мне нужно получить их самостоятельно. Я думаю, что, возможно, перепутал GCE с AWS, где это действительно происходит. - person regretoverflow; 03.05.2014
comment
Вы могли подумать, что некоторые метаданные на самом деле загружаются в экземпляр как переменная среды, а некоторые другие фактически загружаются в файлы. Если вы хотите, вы можете создать сценарий запуска, а также задание cron, которое извлекает все метаданные по ключу => значение и устанавливает переменные среды таким же образом, но некоторые метаданные намного больше, чем ваши стандартные переменная окружения :) - person Christopher Wirt; 05.05.2014
comment
Во второй команде вам нужно будет заменить экземпляр и проект фактическим именем экземпляра и проекта? Я не могу заставить это работать как-то... Я даже пытался передать Authorization Bearer $(gcloud auth print-identity-token) - person DUDANF; 28.08.2019