Utilisation du client de documents DynamoDB - AWS SDK for JavaScript

Nous avons annoncé la sortie end-of-support de la AWS SDK for JavaScript v2. Nous vous recommandons de migrer vers la AWS SDK for JavaScript version 3. Pour les dates, les détails supplémentaires et les informations sur la façon de migrer, reportez-vous à l'annonce associée.

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.

Utilisation du client de documents DynamoDB

JavaScript code example that applies to Node.js execution

Cet exemple de code Node.js présente :

  • Comment accéder à une table DynamoDB à l'aide du client de documents

Scénario

Le client de documents DynamoDB simplifie l'utilisation des éléments en faisant abstraction de la notion de valeurs d'attribut. Cette abstraction annote les JavaScript types natifs fournis en tant que paramètres d'entrée et convertit les données de réponse annotées en types natifs JavaScript .

Pour plus d'informations sur la classe DynamoDB Document Client, AWS.DynamoDB.DocumentClientconsultez le Guide de référence des API. Pour plus d'informations sur la programmation avec Amazon DynamoDB, consultez la section Programmation avec DynamoDB dans le manuel du développeur Amazon DynamoDB.

Dans cet exemple, vous utilisez une série de modules Node.js pour effectuer des opérations de base sur une table DynamoDB à l'aide du client de documents. Le code utilise le SDK pour interroger et scanner des tables JavaScript à l'aide des méthodes suivantes de la classe DynamoDB Document Client :

Tâches prérequises

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

Obtention d'un élément à partir d'une table

Créez un module Node.js nommé ddbdoc_get.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. AWS.DynamoDB.DocumentClient Créez un objet JSON contenant les paramètres requis pour obtenir un élément de la table, ce qui dans cet exemple inclut le nom de la table, le nom de la clé de hachage dans cette table et la valeur de la clé de hachage de l'élément que vous récupérez. Appelez la get méthode du client de documents DynamoDB.

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

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ddbdoc_get.js

Cet exemple de code se trouve ici sur GitHub.

Positionnement d'un élément dans une table

Créez un module Node.js nommé ddbdoc_put.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. AWS.DynamoDB.DocumentClient Créez un objet JSON contenant les paramètres requis pour écrire un élément dans la table, ce qui dans cet exemple inclut le nom de la table et une description de l'élément à ajouter ou à mettre à jour qui inclut la clé de hachage et la valeur, ainsi que les noms et valeurs des attributs à définir sur l'élément. Appelez la put méthode du client de documents DynamoDB.

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

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ddbdoc_put.js

Cet exemple de code se trouve ici sur GitHub.

Mise à jour d'un élément dans une table

Créez un module Node.js nommé ddbdoc_update.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. AWS.DynamoDB.DocumentClient Créez un objet JSON contenant les paramètres requis pour écrire un élément dans la table, ce qui dans cet exemple inclut le nom de la table, la clé de l'élément à mettre à jour et un ensemble de UpdateExpressions définissant les attributs de l'élément à mettre à jour avec les jetons auxquels vous attribuez des valeurs dans les paramètres ExpressionAttributeValues. Appelez la update méthode du client de documents DynamoDB.

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

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ddbdoc_update.js

Cet exemple de code se trouve ici sur GitHub.

Interrogation d'une table

Cet exemple interroge une table qui contient des informations sur chaque épisode d'une série de vidéos, en renvoyant les titres et les sous-titres des épisodes de la deuxième saison après l'épisode 9 qui contiennent une expression spécifiée dans leur sous-titre.

Créez un module Node.js nommé ddbdoc_query.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. AWS.DynamoDB.DocumentClient Créez un objet JSON contenant les paramètres requis pour interroger la table, ce qui dans cet exemple inclut le nom de la table, les valeurs ExpressionAttributeValues requises par la requête et une KeyConditionExpression qui utilise ces valeurs pour définir quels éléments sont renvoyés par la requête. Appelez la query méthode du client de documents DynamoDB.

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

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ddbdoc_query.js

Cet exemple de code se trouve ici sur GitHub.

Suppression d'un élément d'une table

Créez un module Node.js nommé ddbdoc_delete.js. Veillez à configurer le kit SDK comme indiqué précédemment. Pour accéder à DynamoDB, créez un objet. AWS.DynamoDB.DocumentClient Créez un objet JSON contenant les paramètres requis pour supprimer un élément de la table, ce qui dans cet exemple inclut le nom de la table, ainsi que le nom et la valeur de la clé de hachage de l'élément à supprimer. Appelez la delete méthode du client de documents DynamoDB.

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

Pour exécuter l'exemple, entrez ce qui suit dans la ligne de commande.

node ddbdoc_delete.js

Cet exemple de code se trouve ici sur GitHub.