Как получить метаданные экземпляра задачи 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.