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