使用X-Ray SDK for Java或Node.js中提供的X-Ray Lambda扩展来正确捕获并传递父跟踪ID。
Java示例:
public class MyLambda implements RequestHandler
Node.js示例:
const AWSXRay = require('aws-xray-sdk-core');
exports.handler = async (event, context) => {
// 确保在Lambda绑定了X-Ray中间件
AWSXRay.express.openSegment('MyLambdaSegment');
const parent = AWSXRay.getSegment();
try {
const subsegment = parent.addNewSubsegment('mySubsegment');
subsegment.addMetadata('foo', 'bar');
// 执行子段代码
// ...
subsegment.close();
AWSXRay.express.closeSegment();
return 'Success!';
} catch (ex) {
parent.addError(ex);
throw ex;
} finally {
AWSXRay.express.closeSegment();
}
};