我有一条链(只是为了让事情更简单):
- Lambda1(发布商)
- 社交网站
- Lambda2(订阅者)
两个 lambda 都启用了 X-Ray,它们在 X-Ray 控制台中显示为两个单独的链,每个链都包含“clients=>AWS::Lambda=>AWS::Lambda::Function”。如何将它们加入一个链? Here我看到“对于启用了主动跟踪的 Lambda 订阅者,Lambda 记录了一段包含有关函数调用的详细信息的片段,并将其发送到发布者的跟踪”。从我在 X-Ray 控制台中看到的情况来看,我的设置并不正确。
我尝试在 Lambda2 中使用 Python SDK,如下所示:
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all
patch_all()
def lambda_handler(event, context):
... some code
我确实在这个函数的踪迹中看到了 SUBsegments,我可以创建和看到另一个 SUBsegments,但是这个函数的主要部分仍然没有连接到发布者。
我做错了什么?是否可以将 xray_recorder 配置为使用我通过 SNS 从 Lambda1 传递的 xray_trace_id?还是有更简单的方法?
文档中没有明确说明,但你必须使用相同的
from aws_xray_sdk.core
from aws_xray_sdk.core import patch_all
patch_all()
不仅在订阅者中,在发布者中也是如此。这对我有用。
我是一名优秀的程序员,十分优秀!