【问题标题】:AWS X-Ray: Is it possible to add the API Gateway call to the service map?AWS X-Ray:是否可以将 API Gateway 调用添加到服务地图?
【发布时间】:2017-10-30 06:39:30
【问题描述】:

我已将 X 射线检测添加到我的 lambda(Node.js) 中,并且可以在跟踪中看到它周围的所有服务,但仍然无法将调用它的 API 网关添加到跟踪和服务地图中。有什么办法吗?

【问题讨论】:

    标签: aws-lambda aws-api-gateway aws-xray


    【解决方案1】:

    几天前AWS announced 将 X-Ray 集成到 API Gateway 中的可用性,所以是的,现在可以在 X-Ray 中获取包括 API Gateway 在内的全貌。

    要在 API Gateway 中启用 X-Ray 集成,您可以使用管理控制台、AWS CLI 或直接调用 API。

    使用管理控制台打开要为其启用 X-Ray 集成的 API 阶段,选择“Logs/Tracing”选项卡并选择“启用 X-Ray Tracing ”如下图所示:

    为了使用 AWS CLI 启用 X-Ray 集成,official documentation 总结得很好:

    要使用 AWS CLI 为已部署的 API 启用主动 X-Ray 跟踪,请调用 update-stage 命令,如下所示:

    aws apigateway update-stage          \
        --rest-api-id {rest-api-id}      \
        --stage-name {stage-name}      \
        --patch-operations op=replace,path=/tracingEnabled,value=true
    

    在您将 X-Ray 集成到您的 API Gateway API 阶段后,您会看到 API Gateway API 阶段显示在 X-Ray 服务地图中。

    【讨论】:

    • 这应该是新接受的答案。顺便问一下,你有遇到什么麻烦吗?我一直试图让它工作,但 API 网关仍然没有出现在跟踪中。 正在发生,因为 a) “客户端”开始节点不再显示,并且 b) 下游的所有内容都会显示,即使仅设置为被动跟踪。我还没弄明白这个。
    • 当我试用它时,它对我来说完美无缺。正如预期的那样,我在 AWS X-Ray 中获得了代表 API Gateway 方法的其他节点。
    • 有没有一种方法可以使用 cloudformation 在 API GW 中启用 X 射线?
    • @ShubhamMittal 不幸的是,CloudFormation 的 API 网关资源还不支持它,因此必须通过 CloudFormation 启用它的唯一选择是自定义资源。
    • @Dunedan 终于添加了支持!将其添加到此处以供将来的观众使用。请参阅 TracingEnabled 属性:docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/…
    【解决方案2】:

    根据X-Ray FAQ,X-Ray 仅支持以下服务:EC2、ECS、Lambda 和 Elastic Beanstalk。在 X-Ray 添加 API Gateway 支持之前,您将无法使用 X-Ray 跟踪 API Gateway 调用。

    X-Ray 文档称元数据已添加到对 AWS 服务进行的 AWS 开发工具包调用中,因此您会看到由您的 Lambda 函数调用的其他 AWS 服务的 X-Ray 跟踪数据。

    X-Ray documentation 表示 API Gateway 不会将跟踪数据发送到 X-Ray,因此您不能使用 X-Ray 为 AWS SDK 提供的类似方法。例如,如果您在调用 API Gateway API 之前使用了 X-Ray 的 PutTraceSegments 操作,那么每次调用都会得到两个单独的跟踪。看起来您必须等待 X-Ray 和 API Gateway 集成。希望这很快就会发生。

    【讨论】:

    • 虽然这是真的,但我可以通过使用 X-Ray SDK 包装我的 Lambda 来查看我的所有 SNS、SQS、DynamoDB 调用。 API GW 有类似的东西吗?我很清楚 Lambda 不会调用 API-GW,而恰恰相反。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2017-08-24
    • 1970-01-01
    • 2018-08-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多