AWS X-Ray:是否可以将API网关调用添加到服务地图?

Bac*_*man 6 aws-lambda aws-api-gateway aws-xray

我已经为我的lambda(Node.js)添加了X射线检测,并且可以在跟踪中看到它周围的所有服务,但仍然无法添加API网关将其调用到跟踪和服务地图.无论如何要做到这一点?

Mar*_*cha 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 集成。希望这很快就会发生。

  • 请参阅此处解决此问题的论坛帖子:https://forums.aws.amazon.com/thread.jspa?messageID=781548 (2认同)

Dun*_*dan 5

几天前,AWS宣布将X射线集成到API网关中,所以是的,现在可以在X射线上获得包括API网关在内的全貌.

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

使用管理控制台打开要启用X-Ray集成的API的舞台,选择" 日志/跟踪 "选项卡并选择" 启用X射线跟踪 ",如下面的屏幕截图所示:

如何使用管理控制台启用X-Ray与API网关的集成

为了使用AWS CLI实现X-Ray集成,官方文档非常好地总结了它:

要使用AWS CLI为已部署的API启用活动X射线跟踪,请按如下方式调用update-stage命令:

aws apigateway update-stage          \
    --rest-api-id {rest-api-id}      \
    --stage-name {stage-name}      \
    --patch-operations op=replace,path=/tracingEnabled,value=true
Run Code Online (Sandbox Code Playgroud)

在您的API网关API阶段启用X-Ray集成后,您将看到API网关API阶段显示在X射线服务映射中.

  • @ShubhamMittal遗憾的是,CloudFormation的API网关资源尚不支持它,因此必须通过CloudFormation启用它的唯一选择是自定义资源. (2认同)