跨不同的Lambda函数明确设置requestId

时间:2019-03-27 00:34:09

标签: aws-lambda aws-xray

我正在尝试使用AWS APIGateway / Lambda函数集成来构建无服务器应用程序。

我有以下设置:

  * Two APIGateway resources. Calling them service A and service B for now.
  * Two Lambda functions which act the the backend, responsible for processing the requests from APIGateway. Calling them LambdaFunction A and LambdaFunction B for now. 


ServiceA -> LambdaFunctionA
ServiceB -> LambdaFunctionB

ServiceA->ServiceB

现在,按照设置serviceA可以调用ServiceB。我想跟踪一个从serviceA到serviceB的请求。我想做到这一点的方法之一是通过requestIds。我试图查看当serviceA调用serviceB时是否存在某种特定的方式来持久/明确提供requestIds?我查阅了AWS文档,却没有找到任何特定的机制。

我的另一种选择是将Lambda函数与Xray集成在一起,然后在Xray上下文映射/跟踪中传递requestId。我怀疑我是第一个尝试跨多个Lambda函数跟踪请求的人,并认为已经有一种机制可以做到这一点。任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

AWS X-Ray已经使用跟踪ID,用于在案例servicea和serviceb中跨两种资源进行上下文传播。对于API网关和Lambda,如果在入口点api网关或lambda上启用了X-Ray,则跟踪ID的上下文传播是自动的。由API网关或lambda中的X-Ray SDK为您生成的跟踪ID用于唯一标识请求。如果您有一个自定义请求ID,则可以将其作为注释另外添加到X射线段中。