0

我有一个 AWS lambda 函数,它具有 X 射线跟踪(子段),并且从内部,有一个对微服务(NodeJS 使用的 fetch)的 http 调用,它再次实现了 X 射线跟踪(子段)。当我点击 lambda 函数的服务 url 时,在 X-Ray 中创建了两个服务映射:一个用于 lambda,另一个用于微服务。无论如何,两者都有一个服务地图吗?我们可以将跟踪 id 传递给下游 http 调用(NodeJS-used fetch)以获取单个服务映射吗?

4

1 回答 1

1

AWS X-Ray 开发工具包可以捕获传出的 http 请求。当它这样做时,它将添加一个X-Amzn-Trace-Id 标头,让检测的下游服务知道继续跟踪。

您需要使用 X-Ray 修补全局 http/https node.js 模块,以便发送此标头。您可以使用 AWSXRay.captureHttpsGlobal 方法,传入 require('https') 或 require('http') 作为参数。您想要全局捕获模块的原因是因为您正在使用 fetch,它应该在幕后使用 http/https。

于 2019-02-04T17:48:56.507 回答