【问题标题】:AWS X-Ray Trace ID Root not set when invoking Lambda from another Lambda function in Node.js从 Node.js 中的另一个 Lambda 函数调用 Lambda 时未设置 AWS X-Ray 跟踪 ID 根
【发布时间】:2021-07-17 13:59:55
【问题描述】:

我配置了X-Ray,它适用于大多数系统,但在从另一个Lambda 调用Lambda 时出现问题。我在调用new Lambda()之前包装了整个aws SDK:

import xray from 'aws-xray-sdk-core';
import aws from 'aws-sdk';

const awsXray = xray.captureAWS(aws);
const lambda = new awsXray.Lambda();
const response = await lambda.invoke({...}).promise();

类似的方法适用于其他服务,但通过此调用,被调用的 Lambda 始终将 Trace ID 根设置为 Root=1-00000000-000000000000000000000000

我也尝试将实例包装为: const lambda = captureAWSClient(new aws.Lambda()); 但这没有帮助。正在调用的 lambda(上面的代码)正确设置了 Trace ID

【问题讨论】:

  • 您能否确认第二个 lambda 是否启用了跟踪。还要添加特定版本的aws-xray-sdk-coreaws-sdk 和您的 lambda 运行时。

标签: amazon-web-services aws-lambda aws-serverless aws-xray


【解决方案1】:

如果您的跟踪未采样,则这是设置的根跟踪 ID。因为它是非采样的,所以它不会被发送到 X-Ray 服务,因此跟踪 ID 值是无关紧要的,并且不会生成以节省性能。要获取有效的跟踪 ID 值,您应该调整您的 sampling rules in the X-Ray console 并确保在您的 Lambda 上启用主动跟踪。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2021-09-23
    • 2018-08-29
    相关资源
    最近更新 更多