Самоанализ в запускаемых контейнерах Fargate

Наши контейнеры, запущенные в ECS с использованием кластера EC2, использовали механизм «ECS_CONTAINER_METADATA_FILE» агента контейнера для получения идентификатора своей задачи.

Похоже, это не работает с контейнерами, запущенными Fargate. Есть ли механизм самоанализа при запуске в контейнере, запущенном Fargate, с использованием «ECS_CONTAINER_METADATA_FILE»?

Я понимаю, что информацию для всех задач можно получить с помощью curl http://localhost:51678/v1/tasks


person dogfish    schedule 23.08.2018    source источник


Ответы (1)


Похоже, это не работает с контейнерами, запущенными Fargate. Есть ли механизм самоанализа при запуске в контейнере, запущенном Fargate, с использованием «ECS_CONTAINER_METADATA_FILE»?

Нет. У вас нет контроля над базовым хостом или агентом ECS, поэтому нет способа включить или отключить этот файл, как при типе запуска EC2.

К счастью, из задачи Fargate вы можете получить эти метаданные с помощью конечная точка метаданных.

169.254.170.2/v2/metadata вернет объект json со всей необходимой информацией. Вы должны иметь возможность анализировать taskID из TaskArn.

person bluescores    schedule 23.08.2018
comment
Спасибо @bluescores. Хотя это дало бы мне метаданные для задачи со всеми контейнерами. Как мне получить его только для моего текущего контейнера. Учитывая, что у меня может не быть способа найти свой идентификатор контейнера - person dogfish; 23.08.2018
comment
Вы можете предоставить ENV каждому контейнеру, который соответствует имени контейнера или некоторым другим метаданным из ответа конечной точки. Затем из контейнера у вас будет доступ к его имени Fargate через ENV. Вы можете использовать это, чтобы выбрать правильную задачу. Я проверил, что ENV Fargate заполняет в контейнере по умолчанию, и, к сожалению, там нет ничего полезного. - person bluescores; 24.08.2018