我已经在我的lambda(Node.js)中添加了X射线检测,并且可以在跟踪中看到它周围的所有服务,但仍然无法添加API网关将其调用到跟踪和服务地图。反正有吗?
答案 0 :(得分:5)
几天前AWS announced可以将X-Ray集成到API网关中,因此,是的,现在可以在X-Ray中获得包括API网关在内的整个图像。
要在API Gateway中启用X-Ray集成,您可以使用管理控制台,AWS CLI或直接进行API调用。
使用管理控制台打开要为其启用X-Ray集成的API的阶段,选择“ 日志/跟踪”标签,然后选择“ 启用X-Ray跟踪” ”,如下面的屏幕截图所示:
要改为使用AWS CLI启用X-Ray集成,official documentation对其进行了很好的总结:
要使用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
在将X-Ray集成到API Gateway API阶段之后,您会看到API Gateway API阶段显示在X-Ray服务图中。
答案 1 :(得分:4)
根据X-Ray FAQ,X-Ray仅支持以下服务:EC2,ECS,Lambda和Elastic Beanstalk。在X-Ray添加API网关支持之前,您将无法使用X-Ray跟踪API网关调用。
X-Ray文档说,元数据已添加到对AWS服务进行的AWS SDK调用中,因此您可以看到Lambda函数调用的其他AWS服务的X-Ray跟踪数据。
此X-Ray documentation表示API网关不会将跟踪数据发送到X-Ray,因此您无法使用与X-Ray为AWS开发工具包提供的方法类似的方法。例如,如果您在调用API网关API之前使用了X-Ray的PutTraceSegments
操作,那么每次调用最终会有两个单独的跟踪。您似乎必须等待X-Ray和API Gateway进行集成。希望这很快就会发生。