AWS Lambda
開発者ガイド

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 でのトレースの様子を確認できます。

例 index.js

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

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