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 テーブルにアクセスする方法。

シナリオ

DynamoDB ドキュメントクライアントは、属性値の概念を抽象化することによって項目の操作を簡素化します。この抽象化は、入力パラメータとして提供されるネイティブの JavaScript 型に注釈を付け、注釈付きのレスポンスデータをネイティブの JavaScript 型に変換します。

DynamoDB ドキュメントクライアントクラスの詳細については、API リファレンスの AWS.DynamoDB.DocumentClient を参照してください。Amazon DynamoDB を使用したプログラミングの詳細については、Amazon DynamoDB デベロッパーガイドDynamoDB を使用したプログラミングを参照してください。

この例では、一連の Node.js モジュールを使用して、ドキュメントクライアントで DynamoDB テーブルに対して基本操作を実行します。このコードは SDK for JavaScript を使用して、DynamoDB ドキュメントクライアントクラスのこれらのメソッドでテーブルをクエリおよびスキャンします。

前提条件タスク

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

テーブルからの項目の取得

ddbdoc_get.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。DynamoDB にアクセスするには、AWS.DynamoDB.DocumentClient オブジェクトを作成します。テーブルから項目を取得するのに必要なパラメータを含む JSON オブジェクトを作成します。この例では、テーブルの名前、そのテーブルのハッシュキーの名前、および取得する項目のハッシュキーの値が含まれています。DynamoDBドキュメントクライアントの get メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "EPISODES_TABLE", Key: { KEY_NAME: VALUE }, }; docClient.get(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Item); } });

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

node ddbdoc_get.js

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

テーブルでの項目の入力

ddbdoc_put.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。DynamoDB にアクセスするには、AWS.DynamoDB.DocumentClient オブジェクトを作成します。テーブルに項目を書き込むために必要なパラメータを含む JSON オブジェクトを作成します。この例には、テーブルの名前と追加または更新する項目の説明 (ハッシュキーと値、および項目に設定する属性の名前と値) が含まれています。DynamoDBドキュメントクライアントの put メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { TableName: "TABLE", Item: { HASHKEY: VALUE, ATTRIBUTE_1: "STRING_VALUE", ATTRIBUTE_2: VALUE_2, }, }; docClient.put(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

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

node ddbdoc_put.js

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

テーブルでの項目の更新

ddbdoc_update.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。DynamoDB にアクセスするには、AWS.DynamoDB.DocumentClient オブジェクトを作成します。テーブルに項目を書き込むために必要なパラメータを含む JSON オブジェクトを作成します。この例には、テーブルの名前、更新する項目のキー、ExpressionAttributeValues パラメータで値を割り当てるトークンで更新する項目の属性を定義する一連の UpdateExpressions が含まれています。DynamoDBドキュメントクライアントの update メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); // Create variables to hold numeric key values var season = SEASON_NUMBER; var episode = EPISODES_NUMBER; var params = { TableName: "EPISODES_TABLE", Key: { Season: season, Episode: episode, }, UpdateExpression: "set Title = :t, Subtitle = :s", ExpressionAttributeValues: { ":t": "NEW_TITLE", ":s": "NEW_SUBTITLE", }, }; docClient.update(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

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

node ddbdoc_update.js

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

テーブルに対するクエリの実行

この例では、ビデオシリーズに関するエピソード情報を含むテーブルをクエリし、エピソード 9 の過去のサブタイトルに指定されたフレーズを含むセカンドシーズンのエピソードのタイトルとサブタイトルを返します。

ddbdoc_query.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。DynamoDB にアクセスするには、AWS.DynamoDB.DocumentClient オブジェクトを作成します。テーブルをクエリするために必要なパラメータを含む JSON オブジェクトを作成します。この例では、テーブル名、クエリに必要な ExpressionAttributeValues、およびそれらの値を使用してクエリが返す項目を定義する KeyConditionExpression が含まれています。DynamoDBドキュメントクライアントの query メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { ExpressionAttributeValues: { ":s": 2, ":e": 9, ":topic": "PHRASE", }, KeyConditionExpression: "Season = :s and Episode > :e", FilterExpression: "contains (Subtitle, :topic)", TableName: "EPISODES_TABLE", }; docClient.query(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Items); } });

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

node ddbdoc_query.js

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

テーブルからの項目の削除

ddbdoc_delete.js というファイル名で Node.js モジュールを作成します。前に示したように SDK を必ず設定します。DynamoDB にアクセスするには、AWS.DynamoDB.DocumentClient オブジェクトを作成します。テーブルの項目を取得するのに必要なパラメータを含む JSON オブジェクトを作成します。この例では、テーブルの名前、削除する項目のハッシュキーの名前と値が含まれています。DynamoDBドキュメントクライアントの delete メソッドを呼び出します。

// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create DynamoDB document client var docClient = new AWS.DynamoDB.DocumentClient({ apiVersion: "2012-08-10" }); var params = { Key: { HASH_KEY: VALUE, }, TableName: "TABLE", }; docClient.delete(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

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

node ddbdoc_delete.js

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