Crear y rellenar una tabla de DynamoDB - AWS SDK for JavaScript

LaAWS SDK for JavaScript versión 3 (v3) es una reescritura de la versión 2 con algunas funciones nuevas y excelentes, incluida la arquitectura modular. Para obtener más información, consulte la Guía para desarrolladores de la versiónAWS SDK for JavaScript 3.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Crear y rellenar una tabla de DynamoDB

En esta tarea, creará y rellenará la tabla de DynamoDB que utiliza la aplicación.


      Cree una tabla de DynamoDB para la aplicación del tutorial

La función Lambda genera tres números aleatorios y luego los utiliza como claves para buscar nombres de archivo que están almacenados en una tabla de Amazon DynamoDB. En el archivo de almacenamiento slotassets.zip hay dos scripts de Node.js denominados ddb-table-create.js y ddb-table-populate.js. Juntos, estos archivos crean la tabla de DynamoDB y la rellenan con los nombres de los archivos de imágenes del bucket de Amazon S3. La función Lambda proporciona exclusivamente acceso a la tabla. Para completar esta parte de la aplicación es preciso que haga lo siguiente:

  • Edite el código de Node.js que se utiliza para crear la tabla de DynamoDB.

  • Ejecutar el script de configuración que crea la tabla de DynamoDB.

  • Ejecutar el script de configuración, que rellena la tabla de DynamoDB con datos que la aplicación espera y necesita.

Para editar el script de Node.js que crea la tabla de DynamoDB para la aplicación del tutorial
  1. Abra ddb-table-create.js del directorio slotassets en un editor de texto.

  2. Busque esta línea en el script.

    TableName: "TABLE_NAME"

    Cambie TABLE_NAME por uno que elija. Tome nota del nombre de la tabla.

  3. Guarde y cierre el archivo .

Para ejecutar el script de configuración de Node.js que crea la tabla de DynamoDB
  • En la línea de comando, escriba lo siguiente.

    node ddb-table-create.js

Script de creación de una tabla

El script de configuración ddb-table-create.js ejecuta el código siguiente. Crea los parámetros que el JSON necesita para crear la tabla. Esto incluye configurar el nombre de la tabla, definir la clave de ordenación de la tabla (slotPosition) y definir el nombre del atributo que contiene el nombre de archivo de una de las 16 imágenes PNG que se utilizan para mostrar el resultado del giro de la rueda de una ranura. Luego llama al método createTable para crear la tabla.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Load credentials and set Region from JSON file AWS.config.loadFromPath('./config.json'); // Create DynamoDB service object var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'}); var tableParams = { AttributeDefinitions: [ { AttributeName: 'slotPosition', AttributeType: 'N' }, { AttributeName: 'imageFile', AttributeType: 'S' } ], KeySchema: [ { AttributeName: 'slotPosition', KeyType: 'HASH' }, { AttributeName: 'imageFile', KeyType: 'RANGE' } ], ProvisionedThroughput: { ReadCapacityUnits: 1, WriteCapacityUnits: 1 }, TableName: 'TABLE_NAME', StreamSpecification: { StreamEnabled: false } }; ddb.createTable(tableParams, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } });

Cuando existe una tabla de DynamoDB, puede rellenarla con los elementos y los datos que necesita la aplicación. Laslotassetsdirectorio contiene t script Node.jsddb-table-populate.jsque automatiza la introducción de datos para la tabla de DynamoDB que acaba de crear.

Para ejecutar el script de configuración de Node.js que rellena la tabla de DynamoDB con datos
  1. Abra ddb-table-populate.js en un editor de texto.

  2. Busque esta línea en el script.

    var myTable = 'TABLE_NAME';

    Cambie TABLE_NAME por el nombre de la tabla que ha creado anteriormente.

  3. Guarde y cierre el archivo .

  4. En la línea de comando, escriba lo siguiente.

    node ddb-table-populate.js

Script de introducción de datos en una tabla

El script de configuración ddb-table-populate.js ejecuta el código siguiente. Crea los parámetros que el JSON necesita para crear cada elemento de datos para la tabla. Esto incluye un valor de ID numérico exclusivo para slotPosition y el nombre de archivo de una de las 16 imágenes PNG de un resultado de giro de rueda de la ranura para imageFile. Después de configurar los parámetros necesarios para cada resultado posible, el código llama repetidamente a una función que ejecuta el método putItem para rellenar los elementos de la tabla.

// Load the AWS SDK for Node.js var AWS = require('aws-sdk'); // Load credentials and set Region from JSON file AWS.config.loadFromPath('./config.json'); // Create DynamoDB service object var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'}); var myTable = 'TABLE_NAME'; // Add the four results for spades var params = { TableName: myTable, Item: {'slotPosition' : {N: '0'}, 'imageFile' : {S: 'spad_a.png'} } }; post(); var params = { TableName: myTable, Item: {'slotPosition' : {N: '1'}, 'imageFile' : {S: 'spad_k.png'} } }; post(); var params = { TableName: myTable, Item: {'slotPosition' : {N: '2'}, 'imageFile' : {S: 'spad_q.png'} } }; post(); var params = { TableName: myTable, Item: {'slotPosition' : {N: '3'}, 'imageFile' : {S: 'spad_j.png'} } }; post(); // Add the four results for hearts . . . // Add the four results for diamonds . . . // Add the four results for clubs var params = { TableName: myTable, Item: {'slotPosition' : {N: '12'}, 'imageFile' : {S: 'club_a.png'} } }; post(); var params = { TableName: myTable, Item: {'slotPosition' : {N: '13'}, 'imageFile' : {S: 'club_k.png'} } }; post(); var params = { TableName: myTable, Item: {'slotPosition' : {N: '14'}, 'imageFile' : {S: 'club_q.png'} } }; post(); var params = { TableName: myTable, Item: {'slotPosition' : {N: '15'}, 'imageFile' : {S: 'club_j.png'} } }; post(); function post () { ddb.putItem(params, function(err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data); } }); }

Haga clic en next (siguiente) para continuar con el tutorial.