7

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

4

2 回答 2

8

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

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

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

如何使用管理控制台将 X-Ray 集成到 API Gateway

为了使用 AWS CLI 启用 X-Ray 集成,官方文档很好地总结了它:

要使用 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 服务地图中。

于 2018-09-09T13:52:27.100 回答
5

根据X-Ray 常见问题解答,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 文档说 API Gateway 不会将跟踪数据发送到 X-Ray,因此您不能使用与 X-Ray 为 AWS 开发工具包提供的方法类似的方法。例如,如果您PutTraceSegments在调用 API Gateway API 之前使用了 X-Ray 的操作,那么每次调用都会得到两个单独的跟踪。看起来您必须等待 X-Ray 和 API Gateway 集成。希望这很快就会发生。

于 2017-10-30T06:47:27.337 回答