web-dev-qa-db-ja.com

aws x-rayを使用してaxioshttpリクエストを追跡するにはどうすればよいですか?

node.jsベースのawsラムダ関数でaxioshttpリクエストをトレースするの方法を探しています。 awsの公式ドキュメントでHTTPリクエストをトレースする方法を見つけました https://docs.aws.Amazon.com/xray/latest/devguide/xray-sdk-nodejs-httpclients.html

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

しかし、axiosリクエストのトレースに関するドキュメントやブログは見つかりませんでした。このコードも試しましたが、機能しません。

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

この点で助けが必要です。ありがとう!

9
Zeeshan Tariq

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');
5
ericf89