在我的应用程序中,我能够通过AWS-X-Ray跟踪所有的lambda、APIGateway和DynamoDB请求。
我正在做与此问题中的答案相同的操作:
Adding XRAY Tracing to non-rest functions e.g., SQS, Cognito Triggers etc
但是,S3、SQS或其他服务/非rest函数的情况会如何呢?我看到一些甚至不使用aws-sdk的旧代码,依赖项直接导入,如下所示:
从‘@sws/aws-bridge’导入{S3Client,S3Address,RoleService,SQSService};
那么,在这些情况下,如何集成/激活AWS-XRay?
非常感谢您的提前!
干杯,
马塞洛
发布于 2021-08-28 10:38:25
目前,除了REST或直接调用之外,Lambda不支持来自触发器的连续跟踪
上游服务可以是一个仪表化的web应用程序或另一个Lambda函数。您的服务可以使用仪表化的AWS SDK客户端直接调用函数,或通过仪表化的HTTP客户端调用API网关API。
在其他情况下,它将创建自己的新跟踪ID,并使用该ID。
您可以通过在Lambda函数中创建一个新的AWS-Xray片段并使用来自事件的传入TraceID来解决此问题。这将导致您的lambda调用分为两个部分。一个是Lambda自己创建的,另一个是您为扩展现有跟踪而创建的。对于您的用例来说,这是否可接受是您必须自己决定的事情!
如果你正在使用Python,你可以用aws-xray-lambda-segment-shim来完成。
如果你正在使用NodeJS,你可以关注this guide on dev.to。
如果你正在使用.NET,在这个GitHub issue上有一些例子。
https://stackoverflow.com/questions/68305162
复制相似问题