2

我遇到了一个非常奇怪的行为,我正在关注在线文档,并且在创建一个段来处理我的子段时,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')

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

Cannot create segments inside Lambda function. Discarded.

当我删除段创建并尝试像这样在本地运行时:

xray_recorder.begin_subsegment('subsegment-name')
# put annotations and meta data etc
xray_recorder.end_segment('segment-name')

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

令人困惑。

4

1 回答 1

6

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

在本地,我在远程工作正常时忽略了段的创建时遇到了错误。

于 2018-08-24T10:11:04.187 回答