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

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

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

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

JavaScript code example that applies to Node.js execution

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

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

シナリオ

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

前提条件タスク

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

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

  • ユーザーの認証情報を使用して、共有設定ファイルを作成します。共有認証情報ファイルの提供の詳細については、「AWS SDK とツールのリファレンスガイド」の「共有設定ファイルおよび認証情報ファイル」を参照してください。

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

重要

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

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

注記

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

項目の一括読み取り

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

import { BatchGetItemCommand, DynamoDBClient } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new BatchGetItemCommand({ RequestItems: { // Each key in this object is the name of a table. This example refers // to a PageAnalytics table. PageAnalytics: { // Each entry in Keys is an object that specifies a primary key. Keys: [ { // "PageName" is the partition key (simple primary key). // "S" specifies a string as the data type for the value "Home". // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes and // https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Programming.LowLevelAPI.html#Programming.LowLevelAPI.DataTypeDescriptors PageName: { S: "Home" }, }, { PageName: { S: "About" }, }, ], // Only return the "PageName" and "PageViews" attributes. ProjectionExpression: "PageName, PageViews", }, }, }); const response = await client.send(command); console.log(response.Responses["PageAnalytics"]); return response; };

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

node batch-get-item.js

このサンプルコードは、この GitHub にで見つけられます。

項目の一括書き込み

batch-write-item.js というファイル名で Node.js モジュールを作成します。前述のように、必要なクライアントとパッケージのダウンロードに含めて、SDK が設定されていることを確認します。DynamoDB にアクセスするには、DynamoDBクライアントサービスオブジェクトを作成します。項目のバッチを取得するのに必要なパラメータを含む JSON オブジェクトを作成します。この例には、項目を書き込みたい表、各項目用に書き込みたいキー、および属性とその値が含まれます。DynamoDB サービスオブジェクトの BatchWriteItemCommand メソッドを呼び出します。

import { BatchWriteItemCommand, DynamoDBClient, } from "@aws-sdk/client-dynamodb"; const client = new DynamoDBClient({}); export const main = async () => { const command = new BatchWriteItemCommand({ RequestItems: { // Each key in this object is the name of a table. This example refers // to a Coffees table. Coffees: [ // Each entry in Coffees is an object that defines either a PutRequest or DeleteRequest. { // Each PutRequest object defines one item to be inserted into the table. PutRequest: { // The keys of Item are attribute names. Each attribute value is an object with a data type and value. // For more information about data types, // see https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/HowItWorks.NamingRulesDataTypes.html#HowItWorks.DataTypes Item: { Name: { S: "Donkey Kick" }, Process: { S: "Wet-Hulled" }, Flavors: { SS: ["Earth", "Syrup", "Spice"] }, }, }, }, { PutRequest: { Item: { Name: { S: "Flora Ethiopia" }, Process: { S: "Washed" }, Flavors: { SS: ["Stone Fruit", "Toasted Almond", "Delicate"] }, }, }, }, ], }, }); const response = await client.send(command); console.log(response); return response; };

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

node batch-write-item.js

このサンプルコードは、この GitHub にで見つけられます。