Uso del cliente de documentos de DynamoDB - AWS SDK for JavaScript

Anunciamos el próximo fin del soporte para AWS SDK for JavaScript v2. Se recomienda que migre a AWS SDK for JavaScript v3. Para ver las fechas, los detalles adicionales y la información sobre cómo realizar la migración, consulte el anuncio enlazado.

Uso del cliente de documentos de DynamoDB

JavaScript code example that applies to Node.js execution

Este ejemplo de código de Node.js muestra:

  • Cómo obtener acceso a una tabla de DynamoDB mediante el cliente de documentos.

El escenario

El cliente de documentos de DynamoDB simplifica el trabajo con los elementos, ya que abstrae la noción de valores de atributos. Esta abstracción comenta los tipos de JavaScript nativos suministrados como parámetros de entrada, así como convierte datos de respuesta comentados en tipos de JavaScript nativos.

Para obtener más información sobre la clase del cliente de documentos de DynamoDB, consulte AWS.DynamoDB.DocumentClient en la referencia de la API. Para obtener más información sobre la programación con Amazon DynamoDB, consulte Programación con DynamoDB en la Guía para desarrolladores de Amazon DynamoDB.

En este ejemplo, va a utilizar una serie de módulos de Node.js para realizar operaciones básicas en una tabla de DynamoDB mediante el cliente de documentos. El código utiliza el SDK para JavaScript para consultar y analizar tablas mediante los métodos siguientes de la clase de cliente de documentos de DynamoDB:

Tareas previas necesarias

Para configurar y ejecutar este ejemplo, primero debe completar las tareas siguientes:

Obtención de un elemento de una tabla

Cree un módulo de Node.js con el nombre de archivo ddbdoc_get.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de AWS.DynamoDB.DocumentClient. Cree un objeto JSON que contenga los parámetros necesarios para obtener un elemento de la tabla, que en este ejemplo incluye el nombre de la tabla, el nombre de la clave hash en dicha tabla y el valor de la clave hash para el elemento que desea obtener. Llame al método get del cliente de documentos de 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); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ddbdoc_get.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Colocación de un elemento en una tabla

Cree un módulo de Node.js con el nombre de archivo ddbdoc_put.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de AWS.DynamoDB.DocumentClient. Cree un objeto JSON que contenga los parámetros necesarios para escribir un elemento en la tabla, que en este ejemplo incluye el nombre de la tabla y una descripción del elemento para añadir o actualizar que incluye el clave hash y el valor, así como los nombres y los valores de atributos que se van a establecer en el elemento. Llame al método put del cliente de documentos de 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); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ddbdoc_put.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Actualización de un elemento en una tabla

Cree un módulo de Node.js con el nombre de archivo ddbdoc_update.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de AWS.DynamoDB.DocumentClient. Cree un objeto JSON que contenga los parámetros necesarios para escribir un elemento en la tabla, que en este ejemplo incluye el nombre de la tabla, la clave del elemento que se va a actualizar, un conjunto de UpdateExpressions que definen los atributos del elemento que se va a actualizar con tokens a los que asigna valores en los parámetros ExpressionAttributeValues. Llame al método update del cliente de documentos de 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); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ddbdoc_update.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Consulta de una tabla

En este ejemplo, se consulta una tabla que contiene información de episodios sobre una serie de vídeos y se devuelven los títulos y subtítulos de episodios de la segunda temporada posteriores al episodio 9 que contienen una frase especificada en su subtítulo.

Cree un módulo de Node.js con el nombre de archivo ddbdoc_query.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de AWS.DynamoDB.DocumentClient. Cree un objeto JSON que contenga los parámetros necesarios para consultar la tabla, que en este ejemplo incluye el nombre de la tabla, los ExpressionAttributeValues necesarios para la consulta y una KeyConditionExpression que utilice dichos valores para definir qué elementos devuelve la consulta. Llame al método query del cliente de documentos de 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); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ddbdoc_query.js

Este código de ejemplo se puede encontrar aquí en GitHub.

Eliminación de un elemento de una tabla

Cree un módulo de Node.js con el nombre de archivo ddbdoc_delete.js. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de AWS.DynamoDB.DocumentClient. Cree un objeto JSON que contenga los parámetros necesarios para eliminar un elemento de la tabla, que en este ejemplo incluye el nombre de la tabla, así como el nombre y el valor de la clave hash del elemento que desea eliminar. Llame al método delete del cliente de documentos de 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); } });

Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.

node ddbdoc_delete.js

Este código de ejemplo se puede encontrar aquí en GitHub.