Назад | Перейти на главную страницу

Как получить значение ECS_CONTAINER_METADATA_URI_V4 в контейнере AWS ECS?

Вопрос довольно простой, но небольшая предыстория всегда может быть полезна. Мне нужно получить идентификатор контейнера из самого контейнера, и его значение будет использоваться в качестве имени файла журнала. Согласно документы ECS_CONTAINER_METADATA_URI_V4 вводится в каждый контейнер. Но когда я подключаюсь к контейнерам, размещенным на Fargate, через SSH, такой переменной нет. Что и ожидается, и я создал тема для этого, прежде чем просто убедиться, что моя догадка верна.

Итак, есть ли способ получить значение ECS_CONTAINER_METADATA_URI_V4

Я почти уверен что приложение при запуске в контейнере будет доступна эта переменная среды.

Проблема с ssh и bash которые очищают / дезинфицируют переменные среды до того, как вы получите оболочку. Я предлагаю вам запустить задачу на ECS на базе EC2 для тестирования (т.е. не на Fargate) и docker exec -it {container} bash в него - скорее всего, вы найдете ECS_CONTAINER_METADATA_URI_V4 в окр.

Кстати, использование ssh в контейнере - плохая практика. Контейнеры неизменяемы, интерактивного доступа быть не должно.

Надеюсь, это поможет :)

А пока я настаивал на том, чтобы ECS_CONTAINER_METADATA_URI_V4 сохраняя его в файл при запуске контейнера: echo ${ECS_CONTAINER_METADATA_URI_V4} > metadata_url.txt

Итак, я могу получить к нему доступ.