Как получить метаданные экземпляра задачи AWS Fargate внутри работающего контейнера?

Когда задача запускается внутри AWS Fargate, она имеет идентификатор задачи (guid), который используется для журналов Cloudwatch и может использоваться в качестве уникального "идентификатора выполнения". Я запускаю ядро ​​приложения.NET в контейнере AWS и хотел бы найти программный способ получения идентификатора задачи.

Я сослался на документацию AWS в файле метаданных контейнера Amazon ECS

Но не похоже, что агент включен для Fargate, поскольку переменная среды ECS_CONTAINER_METADATA_FILE, по-видимому, недоступна.

Можно ли получить идентификатор задачи (guid) изнутри работающего контейнера?

Решено - Примечания:

Конечная точка задачи ECS предоставила необходимую информацию. Из контейнера Docker вы можете свернуться (или программно вытащить) с URL http://169.254.170.2/v2/metadata и он предоставит вам метаданные задачи контейнера, выполняющего вызов. Я смог проверить это на двух отдельных работающих контейнерах и получить их значения ARN для конкретных задач (уникальный GUID для каждого контейнера).

Обратите внимание, что для Farpoint вы должны использовать v2 конечной точки.

Обновление 5/5/2018

Я создал стандартную библиотеку.NET с именем AwsContainerInspection, которая облегчает анализ метаданных из конечной точки метаданных задачи AWS ECS и возвращает объект класса. Я использую его в своем коде, чтобы получить GUID задачи для регистрации и других вещей.

GitHub - https://github.com/tgourley/AwsContainerInspection

Nuget - https://www.nuget.org/packages/AwsContainerInspection/

1 ответ

Решение

При работе в AWS Fargate вы можете использовать конечную точку метаданных задачи для получения информации о задаче, включая ее ARN.

Другие вопросы по тегам