我们如何使用AWS X射线跟踪axios http请求?

Zee*_*riq 7 node.js aws-lambda serverless-framework aws-xray

我正在寻找一种在基于node.js的aws lambda函数中跟踪axios http请求的方法。我发现了一种在AWS官方文档https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-nodejs-httpclients.html上跟踪HTTP请求的方法

var AWSXRay = require('aws-xray-sdk');
var http = AWSXRay.captureHTTPs(require('http'));
Run Code Online (Sandbox Code Playgroud)

但是我没有找到任何有关axios请求跟踪的文档或博客。我也尝试过此代码,但无法正常工作。

import AWSXRay from 'aws-xray-sdk';
AWSXRay.captureHTTPsGlobal("../../common/http/HttpClient");
import { HttpClient } from "../../common/http/HttpClient";
Run Code Online (Sandbox Code Playgroud)

在这方面我需要帮助。谢谢!

小智 5

由于axios将在幕后使用节点的http / https模块,因此,如果在导入/请求axios之前全局捕获了http和https,则事情应该会按预期进行。

import AWSXRay from 'aws-xray-sdk';
import http from 'http';
import https from 'https';

AWSXRay.captureHTTPsGlobal(http);
AWSXRay.captureHTTPsGlobal(https);

const axios = require('axios');
Run Code Online (Sandbox Code Playgroud)