AWS Xray:无法在 Lambda 函数内创建段且未找到段

Noo*_*fri 3 python aws-lambda aws-xray

我遇到了一个非常奇怪的行为,我正在遵循在线文档,并且在创建一个与我的子段一起使用的段时,lambda 按以下顺序执行:

xray_recorder.begin_segment('segment-name')
xray_recorder.begin_subsegment('subsegment-name')
# put annotations and meta data etc
xray_recorder.end_segment('segment-name')
xray_recorder.end_subsegment('subsegment-name')
Run Code Online (Sandbox Code Playgroud)

但我在CloudWatch Manager上收到以下错误:

Cannot create segments inside Lambda function. Discarded.
Run Code Online (Sandbox Code Playgroud)

当我删除段创建并尝试在本地运行时,如下所示:

xray_recorder.begin_subsegment('subsegment-name')
# put annotations and meta data etc
xray_recorder.end_segment('segment-name')
Run Code Online (Sandbox Code Playgroud)

我收到错误:SegmentNotFoundException:找不到当前段/子段,请确保您有一个打开的段

令人困惑。

Noo*_*fri 9

在本地运行时,xray 段是在本地创建的,您必须启动段来创建子段,但在 AWS 上的 lambda 上运行时,默认情况下会创建段,您可以继续处理子段。

在本地,我在忽略段的创建时遇到了错误,而远程工作却运行良好。