Anunciamos
Creación y uso de tablas en DynamoDB
Este ejemplo de código de Node.js muestra:
Cómo crear y administrar tablas utilizadas para almacenar y recuperar datos desde DynamoDB.
El escenario
Al igual que otros sistemas de base de datos, DynamoDB almacena datos en tablas. Una tabla de DynamoDB es una colección de datos que se organizan en elementos similares a las filas. Para almacenar u obtener acceso a datos de DynamoDB, debe crear y trabajar con tablas.
En este ejemplo, va a utilizar una serie de módulos Node.js para realizar operaciones básicas con una tabla de DynamoDB. El código utiliza el SDK de JavaScript para crear y trabajar con tablas mediante los métodos siguientes de la clase de cliente de AWS.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.
Creación de una tabla
Cree un módulo de Node.js con el nombre de archivo ddb_createtable.js
. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de servicio de AWS.DynamoDB
. Cree un objeto JSON que contenga los parámetros necesarios para crear una tabla, que en este ejemplo incluye el nombre y el tipo de datos para cada atributo, el esquema de claves, el nombre de la tabla y las unidades de rendimiento que deben aprovisionarse. Llame al método createTable
del objeto de servicio de DynamoDB.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { AttributeDefinitions: [ { AttributeName: "CUSTOMER_ID", AttributeType: "N", }, { AttributeName: "CUSTOMER_NAME", AttributeType: "S", }, ], KeySchema: [ { AttributeName: "CUSTOMER_ID", KeyType: "HASH", }, { AttributeName: "CUSTOMER_NAME", KeyType: "RANGE", }, ], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1, }, TableName: "CUSTOMER_LIST", StreamSpecification: { StreamEnabled: false, }, }; // Call DynamoDB to create the table ddb.createTable(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Table Created", data); } });
Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.
node ddb_createtable.js
Este código de ejemplo se puede encontrar aquí en GitHub
Creación de una lista de tablas
Cree un módulo de Node.js con el nombre de archivo ddb_listtables.js
. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de servicio de AWS.DynamoDB
. Cree un objeto JSON que contenga los parámetros necesarios para obtener una lista de las tablas, que en este ejemplo limita el número de tablas enumeradas a 10. Llame al método listTables
del objeto de servicio de DynamoDB.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); // Call DynamoDB to retrieve the list of tables ddb.listTables({ Limit: 10 }, function (err, data) { if (err) { console.log("Error", err.code); } else { console.log("Table names are ", data.TableNames); } });
Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.
node ddb_listtables.js
Este código de ejemplo se puede encontrar aquí en GitHub
Descripción de una tabla
Cree un módulo de Node.js con el nombre de archivo ddb_describetable.js
. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de servicio de AWS.DynamoDB
. Cree un objeto JSON que contenga los parámetros necesarios para describir una tabla, que en este ejemplo incluye el nombre de la tabla que se proporciona como parámetro de la línea de comandos. Llame al método describeTable
del objeto de servicio de DynamoDB.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { TableName: process.argv[2], }; // Call DynamoDB to retrieve the selected table descriptions ddb.describeTable(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.Table.KeySchema); } });
Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.
node ddb_describetable.js
TABLE_NAME
Este código de ejemplo se puede encontrar aquí en GitHub
Eliminación de una tabla
Cree un módulo de Node.js con el nombre de archivo ddb_deletetable.js
. Asegúrese de configurar el SDK tal y como se ha indicado anteriormente. Para acceder a DynamoDB, cree un objeto de servicio de AWS.DynamoDB
. Cree un objeto JSON que contenga los parámetros necesarios para eliminar una tabla. En este ejemplo, el nombre de la tabla se proporciona como parámetro de la línea de comandos. Llame al método deleteTable
del objeto de servicio de DynamoDB.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create the DynamoDB service object var ddb = new AWS.DynamoDB({ apiVersion: "2012-08-10" }); var params = { TableName: process.argv[2], }; // Call DynamoDB to delete the specified table ddb.deleteTable(params, function (err, data) { if (err && err.code === "ResourceNotFoundException") { console.log("Error: Table not found"); } else if (err && err.code === "ResourceInUseException") { console.log("Error: Table in use"); } else { console.log("Success", data); } });
Para ejecutar el ejemplo, escriba lo siguiente en la línea de comandos.
node ddb_deletetable.js
TABLE_NAME
Este código de ejemplo se puede encontrar aquí en GitHub