AWS Lambda
開発者ガイド

Node.js

Node.js では、Lambda によってサブセグメントを X-Ray に発行して、関数が行った他の AWS サービスへのダウンストリーム呼び出しに関する情報を表示できます。これを行うには、最初に AWS X-Ray SDK for Node.js をデプロイパッケージに含める必要があります。さらに、AWS SDK の require ステートメントを以下の方法でラップします。

var AWSXRay = require('aws-xray-sdk-core'); var AWS = AWSXRay.captureAWS(require('aws-sdk'));

次に、前の例で定義された AWS 変数を使用して、X-Ray でトレースするサービスクライアントを初期化します。次に例を示します。

s3Client = AWS.S3();

これらのステップに従うと、s3Client を使用して関数から行われた呼び出しがその呼び出しを表す X-Ray サブセグメントになります。例として、以下の Node.js 関数を実行し X-Ray でのトレースの様子を確認できます。

var AWSXRay = require('aws-xray-sdk-core'); var AWS = AWSXRay.captureAWS(require('aws-sdk')); s3 = new AWS.S3({signatureVersion: 'v4'}); exports.handler = (event, context, callback) => { var params = {Bucket: BUCKET_NAME, Key: BUCKET_KEY, Body: BODY}; s3.putObject(params, function(err, data) { if (err) { console.log(err) } else { console.log('success!') } }); };

前述のコードによって発行されたトレースは以下のようになります (非同期呼び出し)。