Amazon web services 如何将X射线跟踪id发送到AWS上的API网关?

Amazon web services 如何将X射线跟踪id发送到AWS上的API网关?,amazon-web-services,aws-lambda,aws-api-gateway,aws-xray,Amazon Web Services,Aws Lambda,Aws Api Gateway,Aws Xray,我有一个启用了X射线的lambda,它向API网关发送http请求,API网关链接到另一个lambda。我还在API网关中启用了X射线。但它不会跟踪整个流,因为API网关没有使用第一个lambda中的跟踪id 我的问题是如何通过http rest请求发送跟踪id?我想链接从端到端的流 我正在nodejs中使用axios,我不知道awsXRay.captureHTTPsGlobal如何与这个库一起工作。AWS Lambda启用了自动检测,这意味着对AWS服务的调用被跟踪。但对于http(s)客户机

我有一个启用了X射线的lambda,它向API网关发送http请求,API网关链接到另一个lambda。我还在API网关中启用了X射线。但它不会跟踪整个流,因为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');

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

const awsXRay = require("aws-xray-sdk")
awsXRay.captureAWS(require("aws-sdk"))
awsXRay.captureHTTPsGlobal(require("http"))
awsXRay.captureHTTPsGlobal(require("https"))
在处理程序中(在发出HTTP请求之前),允许跟踪基于承诺的请求(例如Axios):


我如何在axios上使用它?我还没有做过。但是您应该能够创建子段并添加元数据来捕获信息。您可以通过http头手动发送跟踪id并接收,在另一端创建段。您是否为非lambda或express的NodeJs脚本配置了x-ray。我找不到任何样本。您有样本吗?我看到您正在使用
http
。它适用于axios吗?您需要按如下方式发送axios配置对象中插入指令的http/s代理:
awsXRay.captureHTTPsGlobal(require(“http”))awsXRay.captureHTTPsGlobal(require(“https”))const http=require('http')const https=require('https')const config={httpAgent:new http.Agent(),httpsAgent:new https.Agent(),…}
awsXRay.capturePromise()