如何将xray跟踪id发送到AWS上的API网关



我有一个启用了xray的lambda,它向链接到另一个lambda的API网关发送http请求。我还在API网关中启用了xray。但它不会跟踪整个流,因为API网关不使用第一个lambda中的跟踪id。

我的问题是如何通过http rest请求发送跟踪id?我想把端到端的流程连接起来。

我在nodejs中使用axios,我不知道awsXRay.captureHTTPsGlobal如何与这个库一起工作。

AWS Lambda启用了自动检测,这意味着对AWS服务的调用被跟踪。但是,当涉及到http(s(客户端时,显式插入是必要的。

var AWSXRay = require('aws-xray-sdk');
AWSXRay.captureHTTPsGlobal(require('http'));
var http = require('http');

使用Node.js 的X-Ray SDK跟踪对下游HTTP web服务的调用

您可以追溯整个流程,但需要手动捕获所有HTTP/S外部请求:

const awsXRay = require("aws-xray-sdk")
awsXRay.captureAWS(require("aws-sdk"))
awsXRay.captureHTTPsGlobal(require("http"))
awsXRay.captureHTTPsGlobal(require("https"))

在您的处理程序中(在发出HTTP请求之前(,允许跟踪基于承诺的请求(例如Axios(:

awsXRay.capturePromise()

最新更新