HEADER_lecciones_de_software

Cómo configurar el SDK de AWS para Nodejs

por Jhoan Steven Delgado, el 27 de julio de 2020

Cómo configurar el SDK de AWS para Nodejs

En esta Lección aprenderemos a configurar el SDK de AWS para los lenguajes NodeJs. Además, realizaremos un ejemplo práctico implementando un servicio de DynamoDB.

Antes de iniciar, verifica nuestra Lección Configurando AWS CLI y IAM profile, donde también encontrarás los perrequisitos que necesitas. 

AWS SDK para Nodejs

1. Una vez instalado NodeJs, creamos un folder para nuestro proyecto llamado DynamoExample.

AWS SDK para Nodejs 1

2. Abrimos la consola (CMD o Terminal), ingresamos en la carpeta haciendo uso del comando cd. Una vez dentro, ejecutamos el comando “npm init”.

AWS SDK para Nodejs 2

3. Dejamos todo en default, presionamos solo enter para seguir…

4. Finalmente cuando lo solicite escribimos “yes” y presionamos enter.

AWS SDK para Nodejs 3

5. Ejecutamos el siguiente comando para instalar el sdk de AWS desde npm: “npm install aws-sdk --save”

AWS SDK para Nodejs 4

6. Finalmente observamos las dependencias en el archivo json

AWS SDK para Nodejs 5

Ejemplo práctico utilizando DynamoDB

A continuación realizaremos un corto y práctico ejemplo utilizando el SDK de AWS con el servicio DynamoDB. Primero, debemos crear una base de datos ejemplo:

Abre la consola (CMD o terminal) y ejecuta el siguiente código de AWS CLI para crearla:

Código:

aws dynamodb create-table --table-name productos-dev --attribute-definitions AttributeName=marca,AttributeType=S AttributeName=referencia,AttributeType=S --key-schema AttributeName=marca,KeyType=HASH AttributeName=referencia,KeyType=RANGE --provisioned-throughput ReadCapacityUnits=5,WriteCapacityUnits=5 --profile dev

AWS SDK utilizando DynamoDB 1

2. Una vez creada, verifica en la AWS console que se encuentre allí:

AWS SDK utilizando DynamoDB 2

3. Abre el proyecto con visual studio code, y crea una clase llamada DynamoScanExample.js

AWS SDK utilizando DynamoDB 3

4. Copia y pega el siguiente código:

var AWS = require("aws-sdk");

var credentials = new AWS.SharedIniFileCredentials({profile: 'dev'});
AWS.config.credentials = credentials;
AWS.config.update({region: 'us-east-1'});


// Create the DynamoDB service object
var ddb = new AWS.DynamoDB.DocumentClient();

var params = {
      TableName: 'productos-dev'

};

ddb.scan(params, onScan);
var count = 0;

function onScan(err, data) {
      if (err) {
console.error("Unable to scan the table. Error JSON:", JSON.stringify(err, null, 2));
       } else {
            console.log("Scan succeeded.");
            data.Items.forEach(function(itemdata) {
                      console.log("Item :", ++count,JSON.stringify(itemdata));
            });

     }
}

5. Ahora crea una clase llamada DynamoInsertExample.js

AWS SDK utilizando DynamoDB 4

6. Copia y pega el siguiente código:

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
var credentials = new AWS.SharedIniFileCredentials({profile: 'dev'});
AWS.config.credentials = credentials;
AWS.config.update({region: 'us-east-1'});

// Create DynamoDB service object
var ddb = new AWS.DynamoDB({apiVersion: '2012-08-10'});

var params = {
       RequestItems: {
           "productos-dev": [
                {
                    PutRequest: {
                          Item: {
                               "marca": { "S": "TESLA" },
                                     "referencia": { "S": "Model X" },
                                     "precio": {"N": "95000"}
                          }
                      }
                  },
                  {
                    PutRequest: {
                         Item: {
                         "marca": { "S": "AUDI" },
                         "referencia": { "S": "Q7" },
                         "precio": {"N": "120000"}
                       }
                    }
                 },
                {
                  PutRequest: {
                       Item: {
                           "marca": { "S": "BMW" },
                           "referencia": { "S": "Serie 1" },
                            "precio": {"N": "50000"}
                        }
                      }
                   },
                  {
                 PutRequest: {
                      Item: {
                          "marca": { "S": "TESLA" },
                          "referencia": { "S": "Model 3" },
                          "precio": {"N": "30000"}
                        }
                   }
               }
           ]
        }
  };  

ddb.batchWriteItem(params, function(err, data) {
     if (err) {

           console.log("Error", err);
     } else {
           console.log("Success", data);
     }
});

7. Una vez hecho esto, (empezaremos por ejecutar el método de la clase DynamoInsertExample, ya que nuestra BD está vacía). Abrimos una terminal dentro de Vscode (En el caso de que no la tengamos) haciendo click en el botón Terminal y luego New Terminal.

AWS SDK utilizando DynamoDB 5

8. Una vez tengamos la terminal abierta dentro de Vscode, escribimos y ejecutamos el siguiente comando: node DynamoInsertExample.js

AWS SDK utilizando DynamoDB 7

9. Al ejecutar exitosamente el comando, tendremos una salida “Success” de consola como la siguiente:

AWS SDK utilizando DynamoDB 8

10. Procedemos a verificar en la AWS console que efectivamente los nuevos datos se encuentren registrado en nuestra BD:

AWS SDK utilizando DynamoDB 9

11. Ahora procedemos a ejecutar la clase DynamoScanExample para realizar un scan de todos los datos de la BD e imprimirlos por consola. Vamos a la terminal y escribimos el siguiente comando: node DynamoScanExample.js

12. Finalmente al ejecutar exitosamente el comando, la salida de consola debe verse como la siguiente:

AWS SDK utilizando DynamoDB 10

13. Para aquellas personas que quieran explorar más a fondo el SDK de AWS para NodeJs, pueden ingresar a los siguientes recursos:

Aprende más en nuestra Lección sobre cómo configurara AWS SDK para Java

 Si quieres conocer más visita nuestra ruta de aprendizaje de profesional AWS

Nueva llamada a la acción

Temas:Desarrollo de Software

Lecciones Pragma

Lecciones en Academia Pragma

Aquí encontrarás tutoriales técnicos para que apliques en temas de desarrollo de software, cloud, calidad en software y aplicaciones móviles. 

También puedes visitar nuestro Blog con contenido actual sobre Transformación Digital, Marketing, Conocimiento de Usuario y más. 

Blog

Suscríbete a la academia

Descarga la Guía para trabajar con ambientes IBM Websphere Portal