我有一个AWS Lambda函数,该函数具有X射线跟踪(子段),从内部,有一个对微服务的http调用(NodeJS使用的提取),该服务又实现了X射线跟踪(子段)。当我点击lambda函数的服务URL时,在X-Ray中创建了两个服务映射:一个用于lambda,另一个用于微服务。无论如何,两者都有一个服务图吗?我们可以将跟踪ID传递给下游的http调用(使用NodeJS的fetch)以获得单个服务映射吗?
答案 0 :(得分:1)
AWS X-Ray SDK可以捕获传出的http请求。这样做时,它将添加一个X-Amzn-Trace-Id header,该值将使已检测到的下游服务知道继续进行跟踪。
您需要使用X-Ray修补全局http / https node.js模块,以便发送此标头。您可以使用AWSXRay.captureHttpsGlobal方法,传入require('https')或require('http')作为参数。您要全局捕获模块的原因是因为您使用的是访存,因此应在后台使用http / https。