【问题标题】:How to integrate AWS-XRay for others AWS services as SQS, S3如何将 AWS-XRay 集成为其他 AWS 服务作为 SQS、S3
【发布时间】:2021-09-19 03:05:34
【问题描述】:

在我的应用程序中,我能够通过 AWS-X-Ray 跟踪所有 lambda、APIGateway 和 DynamoDB 请求。

我和这个问题的答案一样:

Adding XRAY Tracing to non-rest functions e.g., SQS, Cognito Triggers etc

但是,S3、SQS 或其他服务/非休息功能的情况如何? 我看到一些甚至不使用 aws-sdk 的旧代码,依赖项是直接导入的,例如:

从“@sws/aws-bridge”导入 {S3Client、S3Address、RoleService、SQSService};

那么,在这些情况下,如何集成/激活 AWS-XRay?

非常感谢您!

干杯,

马塞洛

【问题讨论】:

  • 对于 SQS,您无需显式设置任何内容。如果您使用发布到 SNS 主题的检测客户端(例如,使用 X-Ray 的 SNS 客户端),则消息将发送到订阅的 SQS 队列,当它通过您的系统时将被跟踪。 S3 也是如此

标签: amazon-web-services amazon-s3 aws-xray


【解决方案1】:

目前 Lambda 不支持来自 REST API 或直接调用以外的触发器的持续跟踪

上游服务可以是检测的 Web 应用程序或另一个 Lambda 函数。您的服务可以使用已检测的 AWS 开发工具包客户端直接调用该函数,或者通过使用已检测的 HTTP 客户端调用 API Gateway API。

在其他任何情况下,它都会创建自己的新 Trace ID 并使用它。

您可以通过在 Lambda 函数内创建新的 AWS-Xray 分段并使用来自事件的传入 TraceID 自行解决此问题。这将为您的 lambda 调用生成两个段。一个由 Lambda 本身创建,另一个由您创建以扩展现有跟踪。这对于您的用例是否可以接受是您必须自己决定的事情!

如果您使用 Python,则可以使用 aws-xray-lambda-segment-shim
如果您正在使用 NodeJS,您可以关注 this guide on dev.to
如果您正在使用 .NET,则此 GitHub issue 上有一些示例。

【讨论】:

    猜你喜欢
    • 2021-11-23
    • 1970-01-01
    • 2020-06-14
    • 1970-01-01
    • 2023-03-17
    • 2023-01-30
    • 2020-06-14
    • 2013-01-23
    • 2019-10-06
    相关资源
    最近更新 更多