如何找到我的 lambda 所在的跟踪 ID?

Jos*_*ing 6 aws-lambda aws-xray

我希望能够在日志中轻松找到 lambda 执行的跟踪 ID(和段 ID)。

我意识到这在 lambda 自动执行的 REPORT 日志上可用,但该日志不适合我的索引和聚合自定义格式。这意味着从日志中获取有关错误等的跟踪 ID 非常麻烦。

有没有办法从 lambda 内部访问跟踪 ID(和段 ID)?看起来它不在传递给处理程序的上下文中,并且我在 XRay SDK 中看不到我需要的内容。我看到有关更改跟踪 ID 的问题,但我不想这样做 - 只需找出它是什么,以便我可以将其添加到我的所有日​​志中。

我正在使用 C# .NET lambda,尽管这可能并不重要。

谢谢!

Jen*_*ens 14

您的 Lambda 中设置了一个包含跟踪 ID 的环境变量:

_X_AMZN_TRACE_ID
Run Code Online (Sandbox Code Playgroud)

所以你只需要在代码中读取该环境变量:

string traceId = Environment.GetEnvironmentVariable("_X_AMZN_TRACE_ID");
Run Code Online (Sandbox Code Playgroud)

来源:AWS 文档