El sitio web de Amazon Web Services (AWS) explica que esta “es la plataforma en la nube más adoptada y completa en el mundo, que ofrece más de 165 servicios integrales de centros de datos a nivel global” y que las organizaciones más grandes del mundo, incluso las gubernamentales la usan para el funcionamiento de sus infraestructuras, el aumento de su agilidad y para disminuir costos.
AWS Identity and Access Management (IAM) es un servicio web que nos ayuda a controlar de manera segura el acceso a los recursos de AWS. Por ello, ofrece una alta disponibilidad, debido a que replica datos entre varios servidores ubicados en centros de datos de Amazon de todo el mundo.
A continuación te damos un tutorial que explica cómo crear una cuenta en AWS, un usuario IAM y cómo obtener permisos de escritura en DynamoDB.
Para utilizar los servicios Lambda y DynamoDB que ofrece AWS de manera local, utilizando SAM local, tendremos que crear una cuenta AWS, configurar las credenciales de esta cuenta y descargar los software necesarios para ejecutar el servicio.
La documentación de SAM se encuentra detallada en la página oficial de AWS:
1- Crear la cuenta en AWS
Ingresa al portal: https://portal.aws.amazon.com/billing/signup?type=enterprise#/start
En la etapa final de la inscripción AWS solicita asociar una tarjeta de crédito para poder tener acceso a los servicios. En caso de omitir este paso, al momento de acceder a un servicio lambda o DynamoDB, la consola de AWS nos mostrará un mensaje diciendo que nos falta asociar una tarjeta de crédito.
2- configurar credenciales
Para configurar las credenciales de la cuenta no es necesario asociar una tarjeta de crédito. Para esto vamos a la consola de AWS y en la opción servicios, buscamos IAM.
IAM es un servicio de identificación de AWS que permite crear grupos y usuarios a los cuales se les otorga permisos para acceder a los servicios de AWS.
Para este tutorial crearemos un usuario y le otorgamos un acceso completo a los servicios, para hacer esta acción, vamos a la opción de usuario y seleccionamos añadir usuario.
Le damos un nombre al usuario y seleccionamos Acceso, mediante programación y le damos la opción siguiente.
Para establecer los permisos del usuario, vamos a asociar directamente las políticas existentes y marcamos AdministratorAccess y le damos siguiente.
Podemos añadir etiquetas a este usuario. (Este paso es opcional).
AWS nos muestra una revisión general de la creación del usuario y damos clic en crear usuario.
Si el usuario se creó con éxito, AWS crea una ID para clave de acceso y una clave de acceso secreta. Estas dos son las credenciales, además nos permiten descargarlas en un formato .csv.
Estos dos datos los debemos guardar, ya que serán necesarios más adelante.
3- Instalación de AWS SAM CLI
Para poder ejecutar SAM se debe tener instalado previamente AWS CLI y docker. Damos clic en installing the AWS command line interface.
Existen varias formas para instalar el CLI. Para este tutorial, se realizará mediante un instalador agregado.
Este enlace nos llevará un poco más abajo de esta misma página que nos muestra los instaladores para los diferentes sistemas operativos. Para windows damos clic en instalador MSI.
En esta sección descargamos el instalador de MSI para la versión de Windows que tengamos.
Descargamos el archivo y ejecutamos el instalador, finalizado el proceso de instalación verificamos que se haya instalado correctamente, mediante el siguiente comando en la consola del sistema:
aws –version
A continuación realizamos la instalación de Python, pip en Windows
https://www.python.org/downloads/windows/
Ejecute el instalador.
Elija Add Python 3 to PATH (Añadir Python3 a PATH).
Seleccione Install Now (Instalar ahora).
Verificamos que la instalación fuera exitosa con los siguientes comandos:
python –version
pip – version
Volvemos a la página inicial de la instalación de SAM. Se debe tener docker instalado en la máquina en esta guía no se abordara este tema.
Después de tener instalado CLI y docker, damos clic en installing the AWS SAM CLI on windows.
En esta página bajamos un poco y damos clic en la versión de Windows que tengamos para descargar el instalador de SAM.
Ejecutamos el archivos descargado e instalamos normalmente, al finalizar ejecutamos el comando:
sam –version para verificar que si este correctamente instalado.
4- crearemos una función lambda la cual se ejecutará de manera local haciendo uso de la herramienta SAM, el lenguaje que utilizaremos será node.js el cual debe estar ya instalado en nuestro pc.
Es importante aclarar que Docker debe estar corriendo
Para crear el proyecto vamos a la consola y ejecutamos el siguiente comando
sam init –runtime nodejs
Con este comando se creará una carpeta llamada sam-app en la cual hay una carpeta llamada hello_world(en esta carpeta se encuentra nuestra función lambda en un archivo .js)
un archivo README.md en el cual se explica los pasos a seguir a continuación desde la consola ingresamos a la carpeta hello_world y descargamos todos los archivos necesarios utilizando el comando npm install
Volvemos a la carpeta sam-app y ejecutamos el comando sam local start-api para iniciar la función la cual correrá en un servidor local.
Si vamos al navegador e ingresamos la ip del servidor local /hello veremos el mensaje que manda la función lambda.
Para detener el servicio presionamos CTRL + C en la consola
*Vamos a realizar la configuración de las credenciales utilizando el comando aws configure.
Introducimos nuestra ID key y la secret access key presionamos enter hasta finalizar
5- utilizando Node.js y DynamoDB crearemos una tabla, cargaremos datos y crearemos elementos.
Nos estamos basando en la guía que ofrece AWS en su página oficial.
https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.html
Lo primero será configurar la versión local de DynamoDB
En esta página seleccionaremos DynamoDB (versión descargable) en su equipo.
Descargamos el archivo .zip
Descomprimimos el archivo entramos a la carpeta creada en la cual debe estar un archivo de nombre
DynamoDBLocal.jar
En esta carpeta abrimos la ventana de comandos y ejecutamos el siguiente comando:
java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
El servicio de AWS DynamoDB se encuentra funcionando de manera local.
A continuación, creamos una carpeta y donde estará nuestro proyecto abrimos la consola y ejecutamos el siguiente comando: npm install aws-sdk.
Esta acción descargara todos los módulos necesarios.
En la carpeta creamos un archivo denominado MoviesCreateTable.js y pegamos el código proporcionado por AWS para la creación de la tabla en este caso una de películas
https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.01.html
Ejecutamos el comando: node MoviesCreateTable.js
Se a creado la tabla con éxito en DynamoDB local para agregar datos a la tabla los cuales se encuentran en formato JSON
https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/samples/moviedata.zip
descomprimimos los datos y copiamos el archivo moviedata.json lo pegamos en la carpeta que creamos para el proyecto creamos un nuevo archivo llamado MoviesLoadData.js y pegamos el código proporcionado en la página de AWS
https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.02.html
para ejecutarlo desde la consola escribimos el siguiente comando
node MoviesLoadData.js
Se comenzaran a importar los datos
Para acceder a estos datos utilizaremos el código también facilitado en la página de AWS
Igual creamos un archivo de nombre MoviesQuery01.js copiamos y pegamos el código facilitado por AWS
https://docs.aws.amazon.com/es_es/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.04.html
Ejecutamos el código en consola para ver los datos que solicitamos
node MoviesQuery01.js
En este caso las películas de 1985
Felicidades, siguiendo el paso a paso de este tutorial, lograste crear tu primera tabla DynamoDb. No olvides que AWS-SDK y el CLI nos permite acceder a muchos más servicios, para hacer cosas increíbles. Por ello, espera más guías en próximas entregas.