node.js - Hur man initierar AWS XRay för alla lambdas i ett NodeJS serverless-projekt


Som jag förstår måste XRay initialiseras före varje AWS-klient och HTTP-klienter om jag också vill spåra utgående HTTP-förfrågningar. Detta är koden för XRay-initialisering.

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

AWSXRay.captureHTTPsGlobal(http)
AWSXRay.captureHTTPsGlobal(https)
AWSXRay.capturePromise()
AWSXRay.captureAWS(aws)

Det verkar enkelt för en enskild lambda. Men jag har ett NodeJS-serverless-projekt som har en massa lambdas, och många fler kommer att läggas till snart. Jag letar efter en lösning som uppfyller

  • Ingen kodduplicering för initialiseringen
  • Initialiseringen görs mer eller mindre automatiskt för utvecklare. Jag vill inte att utvecklarna manuellt ska initialisera xray under utveckling.

Jag funderar på en modul, som heter 'xray-initialization.ts', och förhoppningsvis injicera import './xray-initialization' i en lambda-handler med ett byggverktyg. Är det genomförbart?