DynamoDB での単一項目の読み取りと書き込み - AWS SDK for JavaScript

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

2022 年 10 月 1 日からAWS SDK for JavaScript (v3) はインターネットエクスプローラー 11 (IE 11) のサポートを終了します。詳細については、AWS SDK for JavaScript(v3) の Internet Explorer 11 のサポート終了のお知らせをご覧ください

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DynamoDB での単一項目の読み取りと書き込み

JavaScript code example that applies to Node.js execution

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

  • DynamoDB テーブルに項目を追加する方法。

  • DynamoDB テーブルで項目を取得する方法。

  • DynamoDB テーブルで項目を削除する方法。

シナリオ

この例では、DynamoDB クライアントクラスのこれらのメソッドを使用して、一連の Node.js モジュールで、DynamoDB テーブル内の 1 つの項目を読み書きします。

前提条件タスク

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

  • これらの Node.js の例を実行するようにプロジェクト環境を設定し、必要なAWS SDK for JavaScriptおよびサードパーティーのモジュールをインストールします。「」の指示に従って、 GitHub

  • ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、共有認証情報ファイルから Node.js に認証情報をロードします を参照してください。

  • 項目にアクセスできる DynamoDB テーブルを作成します。DynamoDB テーブルを作成する方法の詳細については、DynamoDB の表の作成と使用 を参照してください。

重要

これらの例では ECMAScript6 (ES6) を使用しています。これには Node.js バージョン13.x以降が必要です。Node.js の最新バージョンをダウンロードしてインストールするには、「Node.js ダウンロード」を参照してください。

ただし、CommonJS 構文を使用したい場合は、JavaScript ES6/CommonJS 構文を参照してください。

注記

次の例で使用されるデータ型については、「」を参照してください。Amazon DynamoDB でサポートされるデータ型と命名規則

項目を書き込みます

libsディレクトリを作成し、ファイル名ddbClient.jsでNode.js モジュールを作成します。それに以下のコードをコピーし、ペーストしてDynamoDB クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

このコードは利用可能ですここ: GitHub

ddb_putitem.jsというファイル名で Node.js モジュールを作成します。前述のように、必要なクライアントとパッケージのダウンロードに含めて、SDK が設定されていることを確認します。DynamoDB にアクセスするには、DynamoDBクライアントサービスオブジェクトを作成します。項目の追加に必要なパラメータを含む JSON オブジェクトを作成します。この例では、テーブルの名前と、設定する属性および各属性の値を定義するマップが含まれています。DynamoDB クライアントサービスオブジェクトの PutItemCommandメソッドを呼び出します。

注記

TABLE_NAME(テーブル名)をテーブルの名前に置き換えます。

注記

次のコード例では、パーティションキーのみで構成されるプライマリキーを持つテーブルを-CUSTOMER_ID-ソートキー-CUSTOMER_NAMEに書き込みます。テーブルのプライマリキーがパーティションキーだけで構成されている場合は、パーティションキーだけを指定します。

// Import required AWS SDK clients and commands for Node.js import { PutItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "TABLE_NAME", Item: { CUSTOMER_ID: { N: "001" }, CUSTOMER_NAME: { S: "Richard Roe" }, }, }; export const run = async () => { try { const data = await ddbClient.send(new PutItemCommand(params)); console.log(data); return data; } catch (err) { console.error(err); } }; run();

この例を実行するには、コマンドプロンプトで以下を入力します。

node ddb_putitem.js

このサンプルコードは、「」を参照してください。ここ: GitHub

項目を更新する

テーブルの既存の項目については、「」を参照してください。libsディレクトリを作成し、ファイル名ddbClient.jsでNode.js モジュールを作成します。それに以下のコードをコピーし、ペーストしてDynamoDB クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

このコードは利用可能ですここ: GitHub

ddb_updateitem.jsというファイル名で Node.js モジュールを作成します。前述のように、必要なクライアントとパッケージのダウンロードに含めて、SDK が設定されていることを確認します。DynamoDB にアクセスするには、DynamoDBクライアントサービスオブジェクトを作成します。項目の追加に必要なパラメータを含む JSON オブジェクトを作成します。この例では、テーブルの名前、更新するキー、および新しい属性名をマッピングする日付式、および新しい属性それぞれの値が含まれています。DynamoDB クライアントサービスオブジェクトの UpdateItemCommandメソッドを呼び出します。

注記

TABLE_NAME(テーブル名)をテーブルの名前に置き換えます。

注記

次のコード例では、パーティションキーのみで構成されるプライマリキーのみで構成されるテーブルに書き込みます。テーブルのプライマリキーがパーティションキーだけで構成されている場合は、パーティションキーだけを指定します。

// Import required AWS SDK clients and commands for Node.js import { UpdateItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; export const params = { TableName: "TABLE_NAME", /* Convert the attribute JavaScript object you are updating to the required Amazon DynamoDB record. The format of values specifies the datatype. The following list demonstrates different datatype formatting requirements: String: "String", NumAttribute: 1, BoolAttribute: true, ListAttribute: [1, "two", false], MapAttribute: { foo: "bar" }, NullAttribute: null */ Key: { primaryKey: {"ATTRIBUTE_TYPE":"KEY_VALUE"}, // For example, 'Season': {N:2}. sortKey: {"ATTRIBUTE_TYPE":"KEY_VALUE"} // For example, 'Episode': {S: "The return"}; (only required if table has sort key). }, // Define expressions for the new or updated attributes UpdateExpression: "set NEW_ATTRIBUTE_NAME_1 = :t, NEW_ATTRIBUTE_NAME_2 = :s", // For example, "'set Title = :t, Subtitle = :s'" ExpressionAttributeValues: { ":t": "NEW_ATTRIBUTE_VALUE_1", // For example ':t' : 'NEW_TITLE' ":s": "NEW_ATTRIBUTE_VALUE_2", // For example ':s' : 'NEW_SUBTITLE' }, ReturnValues: "ALL_NEW" }; export const run = async () => { try { const data = await ddbClient.send(new UpdateItemCommand(params)); console.log(data); return data; } catch (err) { console.error(err); } }; run();

この例を実行するには、コマンドプロンプトで以下を入力します。

node ddb_putitem.js

このサンプルコードは、「」を参照してください。ここ: GitHub

項目の取得

libsディレクトリを作成し、ファイル名ddbClient.jsでNode.js モジュールを作成します。それに以下のコードをコピーし、ペーストしてDynamoDB クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

このコードは利用可能ですここ: GitHub

ddb_getitem.jsというファイル名で Node.js モジュールを作成します。前述のように、必要なクライアントとパッケージのダウンロードに含めて、SDK が設定されていることを確認します。DynamoDB にアクセスするには、DynamoDBクライアントサービスオブジェクトを作成します。取得する項目を特定するには、テーブルのその項目のプライマリキーの値を指定する必要があります。デフォルトでは、GetItemCommand メソッドは項目に定義されているすべての属性値を返します。使用可能なすべての属性値のサブセットのみを取得するには、プロジェクション式を指定します。

項目の取得に必要なパラメータを含む JSON オブジェクトを作成します。この例では、テーブルの名前、取得しているアイテムのキーの名前と値、取得する項目属性を識別するプロジェクション式が含まれています。DynamoDB クライアントサービスオブジェクトの GetItemCommandメソッドを呼び出します。

注記

TABLE_NAMEを表の名前に、KEY_NAMEを表のプライマリキーに、KEY_NAME_VALUEを属性値を含むプライマリキー行の値に、そしてATTRIBUTE_NAMEを属性値を含む属性コラムの名前に置き換えます。

次のコード例では、-KEY_NAME-パーションとソートキーの両方ではない、パーティションキーのみで構成されるプライマリキーを持つ表から項目を取得します。表にパーティションキーとソートキーで構成されるプライマリキーがある場合は、ソートキーの名前と属性も指定する必要があります。

// Import required AWS SDK clients and commands for Node.js import { GetItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "TABLE_NAME", //TABLE_NAME Key: { KEY_NAME: { N: "KEY_VALUE" }, }, ProjectionExpression: "ATTRIBUTE_NAME", }; export const run = async () => { const data = await ddbClient.send(new GetItemCommand(params)); console.log("Success", data.Item); return data; }; run();

この例を実行するには、コマンドプロンプトで以下を入力します。

node ddb_getitem.js

このサンプルコードは、「」を参照してください。ここ: GitHub

項目の削除

libsディレクトリを作成し、ファイル名ddbClient.jsでNode.js モジュールを作成します。それに以下のコードをコピーし、ペーストしてDynamoDB クライアントオブジェクトを作成します。REGION(地域)を、AWS地域に置き換えます。

// Create service client module using ES6 syntax. import { DynamoDBClient } from "@aws-sdk/client-dynamodb"; // Set the AWS Region. const REGION = "REGION"; //e.g. "us-east-1" // Create an Amazon DynamoDB service client object. const ddbClient = new DynamoDBClient({ region: REGION }); export { ddbClient };

このコードは利用可能ですここ: GitHub

ddb_deleteitem.jsというファイル名で Node.js モジュールを作成します。前述のように、必要なクライアントとパッケージのダウンロードに含めて、SDK が設定されていることを確認します。DynamoDB にアクセスするには、DynamoDBクライアントサービスオブジェクトを作成します。項目を削除するために必要なパラメータを含む JSON オブジェクトを作成します。この例では、テーブルの名前、および削除する項目のキーの名前と値の両方が含まれています。DynamoDB クライアントサービスオブジェクトの DeleteItemCommandメソッドを呼び出します。

注記

TABLE_NAME(テーブル名)をテーブルの名前に置き換えます。

注記

次のコード例では、-KEY_NAME-パーションとソートキーの両方ではなく、パーティションキーのみで構成されたプライマリキーを持つアイテムを削除します 表にパーティションキーとソートキーで構成されるプライマリキーがある場合は、ソートキーの名前と属性も指定する必要があります。

// Import required AWS SDK clients and commands for Node.js import { DeleteItemCommand } from "@aws-sdk/client-dynamodb"; import { ddbClient } from "./libs/ddbClient.js"; // Set the parameters export const params = { TableName: "CUSTOMER_LIST_NEWEST", Key: { CUSTOMER_ID: { N: "1" }, }, }; export const run = async () => { try { const data = await ddbClient.send(new DeleteItemCommand(params)); console.log("Success, item deleted", data); return data; } catch (err) { console.log("Error", err); /*if (err && err.code === "ResourceNotFoundException") { console.log("Error: Table not found"); } else if (err && err.code === "ResourceInUseException") { console.log("Error: Table in use"); }*/ } }; run();

この例を実行するには、コマンドプロンプトで以下を入力します。

node ddb_deleteitem.js

このサンプルコードは、「」を参照してください。ここ: GitHub