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

时间:2017-10-30 06:39:31

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

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

2 个答案:

答案 0 :(得分:5)

几天前AWS announced可以将X-Ray集成到API网关中,因此,是的,现在可以在X-Ray中获得包括API网关在内的整个图像。

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

使用管理控制台打开要为其启用X-Ray集成的API的阶段,选择“ 日志/跟踪”标签,然后选择“ 启用X-Ray跟踪” ”,如下面的屏幕截图所示:

How to enable X-Ray integration into API Gateway using the Management console

要改为使用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进行集成。希望这很快就会发生。