AWS SAM X-Ray追踪:Active与PassThrough的区别及默认值问询
AWS Lambda Tracing: Active vs PassThrough 区别及默认值解析
嘿,这个问题问得很精准!我来给你拆解清楚这两种追踪模式的差异,以及默认值的情况:
1. Active 模式
- 这是主动追踪模式:只要你把Tracing设为
Active,Lambda就会无条件地将自身的执行轨迹(包括初始化、运行时的详细步骤)上报给X-Ray,不管上游调用方有没有开启X-Ray追踪。 - 另外,如果你的Lambda函数调用了其他支持X-Ray的AWS服务(比如DynamoDB、S3、API Gateway等),它还会自动传递Trace ID,让整个调用链路的追踪数据完整串联起来,方便你排查端到端的问题。
2. PassThrough 模式
- 这是被动追踪模式:只有当上游调用者已经发起了X-Ray追踪,并且把有效的Trace ID传递给Lambda时,Lambda才会将自身的执行数据追加到这条已有的追踪链中。
- 如果上游没有传递Trace ID,Lambda就不会生成任何追踪数据,相当于跳过了追踪流程,这样可以避免不必要的追踪开销。
默认值说明
是的,PassThrough确实是AWS::Serverless::Function中Tracing参数的默认值。如果你在CloudFormation模板里没有显式指定Tracing字段,函数会自动使用这个被动追踪模式。
简单总结一下:Active是“我不管,我就要生成追踪数据”,PassThrough是“上游让我追踪我才追踪”,默认是后者,能在不需要全链路追踪的时候帮你节省X-Ray的存储和调用成本~
内容的提问来源于stack exchange,提问作者niqui
相关产品推荐
相关产品推荐

