Lecture et écriture d'éléments par lots dans DynamoDB - AWS SDK for JavaScript

Le guide de référence de l'API AWS SDK for JavaScript V3 décrit en détail toutes les opérations de l'API pour la AWS SDK for JavaScript version 3 (V3).

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Lecture et écriture d'éléments par lots dans DynamoDB

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment lire et écrire des lots d'éléments dans une table DynamoDB

Le scénario

Dans cet exemple, vous utilisez une série de modules Node.js pour placer un lot d'éléments dans une table DynamoDB et lire un lot d'éléments. Le code utilise le SDK pour effectuer des opérations JavaScript de lecture et d'écriture par lots à l'aide des méthodes suivantes de la classe client DynamoDB :

Tâches prérequises

Pour configurer et exécuter cet exemple, réalisez tout d'abord les tâches ci-après :

  • Configurez l'environnement du projet pour exécuter ces TypeScript exemples de nœuds et installez les modules requis AWS SDK for JavaScript et tiers. Suivez les instructions figurant sur GitHub.

  • Créez un fichier de configurations partagé avec vos informations d'identification utilisateur. Pour plus d'informations sur la fourniture d'un fichier d'informations d'identification partagé, consultez la section Fichiers de configuration et d'informations d'identification partagés dans le Guide de référence AWS des SDK et des outils.

  • Créez une table DynamoDB dont vous pouvez accéder aux éléments. Pour plus d'informations sur la création d'une table DynamoDB, consultez. Création et utilisation de tables dans DynamoDB

Important

Ces exemples utilisent ECMAScript6 (ES6). Cela nécessite la version 13.x ou supérieure de Node.js. Pour télécharger et installer la dernière version de Node.js, consultez la section Téléchargements de Node.js. .

Toutefois, si vous préférez utiliser la syntaxe CommonJS, veuillez vous référer àJavaScript Syntaxe ES6/CommonJS.

Note

Pour plus d'informations sur les types de données utilisés dans ces exemples, consultez la section Types de données et règles de dénomination pris en charge dans Amazon DynamoDB.

Lecture d'éléments par lots

Créez un module Node.js nommé batch-get-item.js. Assurez-vous de configurer le SDK comme indiqué précédemment, notamment en téléchargeant les clients et les packages requis. Pour accéder à DynamoDB, créez DynamoDB un objet de service client. Créez un objet JSON contenant les paramètres requis pour obtenir un lot d'éléments, ce qui dans cet exemple inclut le nom d'une ou de plusieurs tables dans lesquelles lire les éléments, les valeurs des clés à lire dans chaque table et l'expression de projection qui spécifie les attributs à renvoyer. Appelez la BatchGetItemCommand méthode de l'objet de service DynamoDB.

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

Pour exécuter l'exemple, entrez ce qui suit à l'invite de commande.

node batch-get-item.js

Cet exemple de code se trouve ici GitHub.

Écrire des articles par lots

Créez un module Node.js nommé batch-write-item.js. Assurez-vous de configurer le SDK comme indiqué précédemment, notamment en téléchargeant les clients et les packages requis. Pour accéder à DynamoDB, créez DynamoDB un objet de service client. Créez un objet JSON contenant les paramètres nécessaires pour obtenir un lot d'éléments, qui, dans cet exemple, inclut la table dans laquelle vous souhaitez écrire des éléments, les clés que vous souhaitez écrire pour chaque élément et les attributs ainsi que leurs valeurs. Appelez la BatchWriteItemCommand méthode de l'objet de service DynamoDB.

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

Pour exécuter l'exemple, entrez ce qui suit à l'invite de commande.

node batch-write-item.js

Cet exemple de code se trouve ici GitHub.