0

当通过包装在事件中的 sdk 的客户端手动将 lambda 的结果转发到其下一个目标时,会从头到尾captureAWSv3Client正确跟踪。

例子:

// lambda code
const eventBridgeClient = captureAWSv3Client(new EventBridgeClient({}));
const putEventsCommand = new PutEventsCommand({
    Entries: [
      {
        EventBusName: eventbus,
        Detail: JSON.stringify({"my": "result"}),
        DetailType: "my-result",
        Source: "lambda-a",
        Time: new Date(),
      },
    ],
  });
await eventBridgeClient.send(putEventsCommand);

这会在多个 lambda 中正确地在 X 射线上跟踪相同的事件,每个 lambda 会将其结果发送到事件桥,从而触发针对下一个的规则。

然而,当试图通过使用成功目标上的 lambda 并简单地返回结果来摆脱此自定义代码时,事件桥不会显示在 X 射线上,并且每个 lambda 都是它自己的跟踪。

例子:

// lambda code
return {"my": "result"};

// cdk code
new NodejsFunction(this, "lambda-a", {
   ...
   onSuccess: new EventBridgeDestination(eventbus)
})

返回的结果在事件桥上结束,并在将规则调整为新responsePayload结构的模式时成功转发。但它与 X 射线无关。

在哪里/如何修复或设置?AWS 关于 lambda 目的地等主题的所有文档和博客文章均未提及有关 X 射线的任何内容

4

0 回答 0