Lesen und Schreiben von Elementen im Batch in DynamoDB - AWS SDK for JavaScript

Das AWS SDK for JavaScript V3-API-Referenzhandbuch beschreibt detailliert alle API-Operationen für die AWS SDK for JavaScript Version 3 (V3).

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Lesen und Schreiben von Elementen im Batch in DynamoDB

JavaScript code example that applies to Node.js execution

Dieses Node.js-Codebeispiel zeigt:

  • So lesen und schreiben Sie Stapel von Elementen in einer DynamoDB-Tabelle.

Das Szenario

In diesem Beispiel verwenden Sie eine Reihe von Node.js -Modulen, um einen Stapel von Elementen in eine DynamoDB-Tabelle einzufügen und einen Stapel von Elementen zu lesen. Der Code verwendet das SDK für JavaScript die Ausführung von Batch-Lese- und Schreiboperationen mit den folgenden Methoden der DynamoDB-Clientklasse:

Erforderliche Aufgaben

Zum Einrichten und Ausführen dieses Beispiels schließen Sie zunächst diese Aufgaben ab:

  • Richten Sie die Projektumgebung ein, um diese TypeScript Node-Beispiele auszuführen, und installieren Sie die erforderlichen Module AWS SDK for JavaScript und Module von Drittanbietern. Folgen Sie den Anweisungen auf GitHub.

  • Erstellen Sie eine freigegebene Konfigurationsdatei mit Ihren Anmeldeinformationen. Weitere Informationen zur Bereitstellung einer Datei mit gemeinsam genutzten Anmeldeinformationen finden Sie unter Dateien mit gemeinsam genutzten Konfigurationen und Anmeldeinformationen im Referenzhandbuch für AWS SDKs und Tools.

  • Erstellen Sie eine DynamoDB-Tabelle, auf deren Elemente Sie zugreifen können. Weitere Hinweise zum Erstellen einer DynamoDB-Tabelle finden Sie unter. Tabellen in DynamoDB erstellen und verwenden

Wichtig

In diesen Beispielen wird ECMAScript6 (ES6) verwendet. Dies erfordert Node.js Version 13.x oder höher. Informationen zum Herunterladen und Installieren der neuesten Version von Node.js finden Sie unter Node.js downloads. .

Wenn Sie jedoch die CommonJS-Syntax bevorzugen, finden Sie weitere Informationen unter. JavaScript ES6/CommonJS-Syntax

Anmerkung

Informationen zu den in diesen Beispielen verwendeten Datentypen finden Sie unter Unterstützte Datentypen und Benennungsregeln in Amazon DynamoDB.

Elemente in einem Stapel lesen

Erstellen Sie ein Node.js-Modul mit dem Dateinamen batch-get-item.js. Stellen Sie sicher, dass Sie das SDK wie zuvor gezeigt konfigurieren, einschließlich des Herunterladens der erforderlichen Clients und Pakete. Um auf DynamoDB zuzugreifen, erstellen Sie ein DynamoDB Client-Serviceobjekt. Erstellen Sie ein JSON-Objekt mit den erforderlichen Parametern für das Abrufen eines Stapels von Elementen, das in diesem Beispiel den Namen einer oder mehrerer zu lesender Tabellen, die in jeder Tabelle zu lesenden Werte von Schlüsseln und den Projektionsausdruck beinhaltet, der die zurückzugebenden Attribute angibt. Rufen Sie die BatchGetItemCommand Methode des DynamoDB-Dienstobjekts auf.

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; };

Um das Beispiel auszuführen, geben Sie an der Befehlszeile Folgendes ein.

node batch-get-item.js

Dieser Beispielcode finden Sie hier unter GitHub.

Artikel in einem Stapel schreiben

Erstellen Sie ein Node.js-Modul mit dem Dateinamen batch-write-item.js. Stellen Sie sicher, dass Sie das SDK wie zuvor gezeigt konfigurieren, einschließlich des Herunterladens der erforderlichen Clients und Pakete. Um auf DynamoDB zuzugreifen, erstellen Sie ein DynamoDB Client-Serviceobjekt. Erstellen Sie ein JSON-Objekt mit den Parametern, die zum Abrufen eines Batches von Elementen erforderlich sind. In diesem Beispiel umfasst dies die Tabelle, in die Sie Elemente schreiben möchten, die Schlüssel, die Sie für jedes Element schreiben möchten, und die Attribute zusammen mit ihren Werten. Rufen Sie die BatchWriteItemCommand Methode des DynamoDB-Dienstobjekts auf.

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; };

Um das Beispiel auszuführen, geben Sie an der Befehlszeile Folgendes ein.

node batch-write-item.js

Dieser Beispielcode finden Sie hier unter GitHub.