Anunciamos
Uso del cliente de documentos de DynamoDB
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:
Instale Node.js. Para obtener más información, consulte el sitio web de Node.js
. Cree un archivo de configuraciones compartidas con sus credenciales de usuario. Para obtener más información acerca de cómo crear un archivo de credenciales compartidas, consulte Carga de credenciales en Node.js desde el archivo de credenciales compartidas.
Cree una tabla de DynamoDB a cuyos elementos pueda obtener acceso. Para obtener más información acerca de cómo crear una tabla de DynamoDB utilizando el SDK para JavaScript, consulte Creación y uso de tablas en DynamoDB. También puede utilizar la consola de DynamoDB
para crear una tabla.
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