У меня есть несколько экземпляров Google Compute Engine, и для каждого я установил метаданные экземпляра, при условии, что они доступны в самом экземпляре как переменная среды, но они не отображаются. Затем я прочитал здесь, что мне нужно запросить сервер метаданных для получения этих данных, но это просто возвращает 403 неавторизованный, когда запустить из самого экземпляра. Есть ли способ получить доступ к метаданным в виде переменных среды?
Переменные среды экземпляра
Ответы (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
А, это имеет смысл. У меня сложилось впечатление, что метаданные, которые я добавляю в проект, автоматически устанавливаются в экземпляре виртуальной машины как переменные среды, но похоже, что мне нужно получить их самостоятельно. Я думаю, что, возможно, перепутал GCE с AWS, где это действительно происходит.
- person regretoverflow; 03.05.2014
Вы могли подумать, что некоторые метаданные на самом деле загружаются в экземпляр как переменная среды, а некоторые другие фактически загружаются в файлы. Если вы хотите, вы можете создать сценарий запуска, а также задание cron, которое извлекает все метаданные по ключу => значение и устанавливает переменные среды таким же образом, но некоторые метаданные намного больше, чем ваши стандартные переменная окружения :)
- person Christopher Wirt; 05.05.2014
Во второй команде вам нужно будет заменить экземпляр и проект фактическим именем экземпляра и проекта? Я не могу заставить это работать как-то... Я даже пытался передать
Authorization Bearer $(gcloud auth print-identity-token)
- person DUDANF; 28.08.2019