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

Когда задача запускается внутри 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 конечной точки.

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

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

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

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

1 Ответ

0 голосов
/ 02 ноября 2018

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

...