AWS SDK for JavaScript v2 のサポート終了が間近に迫っていることが発表
DynamoDB ドキュメントクライアントの使用
この Node.js コード例は以下を示しています。
ドキュメントクライアントを使用して DynamoDB テーブルにアクセスする方法。
シナリオ
DynamoDB ドキュメントクライアントは、属性値の概念を抽象化することによって項目の操作を簡素化します。この抽象化は、入力パラメータとして提供されるネイティブの JavaScript 型に注釈を付け、注釈付きのレスポンスデータをネイティブの JavaScript 型に変換します。
DynamoDB ドキュメントクライアントクラスの詳細については、API リファレンスの AWS.DynamoDB.DocumentClient
を参照してください。Amazon DynamoDB を使用したプログラミングの詳細については、Amazon DynamoDB デベロッパーガイドの DynamoDB を使用したプログラミングを参照してください。
この例では、一連の Node.js モジュールを使用して、ドキュメントクライアントで DynamoDB テーブルに対して基本操作を実行します。このコードは SDK for JavaScript を使用して、DynamoDB ドキュメントクライアントクラスのこれらのメソッドでテーブルをクエリおよびスキャンします。
前提条件タスク
この例をセットアップして実行するには、まず次のタスクを完了します。
Node.js をインストールします。詳細については、Node.js のウェブサイト
を参照してください。 ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、共有認証情報ファイルから Node.js に認証情報をロードする を参照してください。
項目にアクセスできる DynamoDB テーブルを作成します。SDK for JavaScript を使用して DynamoDB テーブルを作成する方法の詳細については、DynamoDB のテーブルの作成と使用 を参照してください。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