【问题标题】:Creating single service map in AWS X-Ray for lambda function and microservice在 AWS X-Ray 中为 lambda 函数和微服务创建单一服务映射
【发布时间】:2019-02-04 16:32:37
【问题描述】:
我有一个 AWS lambda 函数,它具有 X 射线跟踪(子段),并且从内部,有一个对微服务(NodeJS 使用的 fetch)的 http 调用,它再次实现了 X 射线跟踪(子段)。当我点击 lambda 函数的服务 url 时,在 X-Ray 中创建了两个服务映射:一个用于 lambda,另一个用于微服务。无论如何,两者都有一个服务地图吗?我们可以将跟踪 id 传递给下游 http 调用(NodeJS-used fetch)以获取单个服务映射吗?
【问题讨论】:
标签:
amazon-web-services
aws-lambda
aws-sdk
aws-xray
【解决方案1】:
AWS X-Ray 开发工具包可以捕获传出的 http 请求。当它这样做时,它会添加一个X-Amzn-Trace-Id header,让检测的下游服务知道继续跟踪。
您需要使用 X-Ray 修补全局 http/https node.js 模块才能发送此标头。您可以使用 AWSXRay.captureHttpsGlobal 方法,传入 require('https') 或 require('http') 作为参数。您想要全局捕获模块的原因是因为您正在使用 fetch,它应该在后台使用 http/https。