.net - 如何在正在运行的容器中获取AWS Fargate任务实例元数据?

标签 .net visual-studio amazon-web-services amazon-ecs aws-sdk-net

当任务在AWS Fargate内部启动时,它具有一个任务ID(guid),该ID用于Cloudwatch日志,并且可以用作唯一的“运行ID”。我正在将.NET核心应用程序启动到AWS容器中,并希望找到一种编程方式来提取任务ID。

我已引用Amazon ECS Container Metadata File上的AWS文档

但是似乎没有为Fargate打开代理,因为ECS_CONTAINER_METADATA_FILE环境变量似乎不可用。

我可以从正在运行的容器内部获取任务ID(GUID)的任何方法吗?

已解决-注释:

ECS任务端点提供了所需的信息。您可以从Docker容器中 curl (或以编程方式拉出)URL http://169.254.170.2/v2/metadata,它将为您提供进行调用的容器的任务元数据。我能够在两个单独的运行容器上对此进行测试,并获取其特定任务的ARN值(每个容器的唯一GUID。)

请注意,对于Farpoint,您必须使用端点的v2。

更新11/5/2018

我创建了一个名为AwsContainerInspection的.NET标准库,该库有助于从AWS ECS任务元数据端点解析元数据并返回一个类对象。我在代码中使用它来获取任务GUID进行日志记录和其他操作。

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

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

最佳答案

在AWS Fargate中运行时,您可以使用task metadata endpoint检索有关任务的信息,包括其ARN。

关于.net - 如何在正在运行的容器中获取AWS Fargate任务实例元数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53112991/

相关文章:

c# - 为什么要等待异步 Web 服务调用

c# - 为什么 Fiddler 的 Http 请求非常快

c++ - 将表达式评估为函数参数时,Visual Studio 2013 有符号/无符号整数数学行为不同,编译器开关?

c# - Unity EditorWindow - 在屏幕 View 中找到鼠标位置

c++ - CList控件选择(MFC)

.net - 如何检测 .NET 应用程序是否正在使用我的 COM 对象?

c# - AppDomain 间通信问题

mysql - 每日将 AWS Aurora 数据库复制到另一个 AWS Aurora 数据库

amazon-web-services - 如何配置 Winlogbeat 连接到 AWS elasticsearch

amazon-web-services - cloudformation 堆栈中的内部转换错误