AWS SDK for JavaScript 呼び出しのログ記録 - AWS SDK for JavaScript

AWS SDK for JavaScript V3 API リファレンスガイドでは、AWS SDK for JavaScript バージョン3 (V3) のすべての API オペレーションについて詳しく説明します。

AWS SDK for JavaScript 呼び出しのログ記録

AWS SDK for JavaScript には組み込みロガーが実装されているため、DK for JavaScript で行った API 呼び出しをログに記録できます。

ロガーを有効にしてコンソールにログエントリを出力するには、オプションの logger パラメータを使用してサービスクライアントを設定します。次の例では、トレース出力とデバッグ出力を無視しながらクライアントログ記録を有効にします。

new S3Client({ logger: { ...console, debug(...args) {}, trace(...args) {}, }, });

ミドルウェアを使用してリクエストをログに記録する

AWS SDK for JavaScript はミドルウェアスタックを使用して、オペレーション呼び出しのライフサイクルを制御します。スタック内の各ミドルウェアは、リクエストオブジェクトに変更を加えた後、次のミドルウェアを呼び出します。また、エラーに至るまでに呼び出されたミドルウェアを正確に確認できるため、スタック内の問題のデバッグがはるかに簡単になります。ミドルウェアを使用したリクエストのログ記録の例を次に示します。

const client = new DynamoDB({ region: "us-west-2" }); client.middlewareStack.add( (next, context) => async (args) => { console.log("AWS SDK context", context.clientName, context.commandName); console.log("AWS SDK request input", args.input); const result = await next(args); console.log("AWS SDK request output:", result.output); return result; }, { name: "MyMiddleware", step: "build", override: true, } ); await client.listTables({});

上記の例では、ミドルウェアが DynamoDB クライアントのミドルウェアスタックに追加されています。最初の引数は関数で、スタック内で次に呼び出されるミドルウェアである next と、呼び出されるオペレーションに関する情報を含む context オブジェクトを受け取ります。この関数はさらに、オペレーションに渡されたパラメータとリクエストを含む args オブジェクトを受け取り、args を使って次のミドルウェアを呼び出した結果を返します。