DynamoDB のバッチでの項目の読み取りと書き込み - AWS SDK for JavaScript

AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表されています。AWS SDK for JavaScript v3 に移行することをお勧めします。日付、その他の詳細、移行方法については、リンク先の発表内容を参照してください。

DynamoDB のバッチでの項目の読み取りと書き込み

JavaScript code example that applies to Node.js execution

この Node.js コード例は以下を示しています。

  • DynamoDB テーブルの項目のバッチを読み書きする方法。

シナリオ

この例では、一連の Node.js モジュールを使用して、項目のバッチを読み取ると共に、DynamoDB テーブルに項目のバッチを配置します。コードは SDK for JavaScript を使用して、DynamoDB クライアントクラスのこれらのメソッドでバッチ読み取りおよび書き込みを実行します。

前提条件タスク

この例をセットアップして実行するには、まず次のタスクを完了します。

Batch の項目の読み取り

ddb_batchgetitem.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。DynamoDB にアクセスするには、AWS.DynamoDB サービスオブジェクトを作成します。項目のバッチを取得するために必要なパラメータを含む JSON オブジェクトを作成します。この例では、読み取る 1 つ以上のテーブルの名前、各テーブルで読み取るキーの値、および返す属性を指定するプロジェクション式が含まれます。DynamoDB サービスオブジェクトの batchGetItem メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { RequestItems: { TABLE_NAME: { Keys: [ { KEY_NAME: { N: "KEY_VALUE_1" } }, { KEY_NAME: { N: "KEY_VALUE_2" } }, { KEY_NAME: { N: "KEY_VALUE_3" } }, ], ProjectionExpression: "KEY_NAME, ATTRIBUTE", }, }, }; ddb.batchGetItem(params, function (err, data) { if (err) { console.log("Error", err); } else { data.Responses.TABLE_NAME.forEach(function (element, index, array) { console.log(element); }); } });

この例を実行するには、コマンドラインに次のように入力します。

node ddb_batchgetitem.js

このサンプルコードは、このGitHubにあります。

Batch での項目の書き込み

ddb_batchwriteitem.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。DynamoDB にアクセスするには、AWS.DynamoDB サービスオブジェクトを作成します。項目のバッチを取得するのに必要なパラメータを含む JSON オブジェクトを作成します。この例には、項目を書き込むテーブル、各項目に書き込むキー、および属性とその値が含まれます。DynamoDB サービスオブジェクトの batchWriteItem メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { RequestItems: { TABLE_NAME: [ { PutRequest: { Item: { KEY: { N: "KEY_VALUE" }, ATTRIBUTE_1: { S: "ATTRIBUTE_1_VALUE" }, ATTRIBUTE_2: { N: "ATTRIBUTE_2_VALUE" }, }, }, }, { PutRequest: { Item: { KEY: { N: "KEY_VALUE" }, ATTRIBUTE_1: { S: "ATTRIBUTE_1_VALUE" }, ATTRIBUTE_2: { N: "ATTRIBUTE_2_VALUE" }, }, }, }, ], }, }; ddb.batchWriteItem(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

この例を実行するには、コマンドラインに次のように入力します。

node ddb_batchwriteitem.js

このサンプルコードは、このGitHubにあります。