Lambda

AWS Lambda le permite ejecutar código sin aprovisionar ni administrar servidores. Lo cual nos permite pagar solo por lo que utilices siendo esto una gran ventaja

Se puede ejecutar código para servidores backend o aplicaciones sin tener tareas administrativas Se tiene que cargar el código y lambda se encargara de ejecutar, se puede configurar su código para que se active automáticamente desde otros servicios de AWS o puede llamarlo directamente desde cualquier aplicación web o móvil.

  • Solo se paga a partir de los 100ms
  • Tiempo máximo de la ejecución de una función Lambda es 15 minutos.
  • Puedes programar en : Python, Java, Node, Ruby, C#, Go.
  • Escala automáticamente.

Desencadenadores

Laboratorio

  1. Entramos al MobaXterm, accedemos a la EC2
  2. Subimos el archivo write-kinesis-purchase.py a la EC2 carpeta /home/ec2-user
  3. Creación de streams en Kinesis Data Streams

Entramos a la consola de AWS y abrir el servicio de Kinesis

Clic en Data Streams y Create Data Streams.

El nombre del stream será input-data-stream

En el campo number of shards ingresamos 1

Clic en Create Kinesis stream

El nombre de la función será (opcional): Ingest-Dynamo-Input-Kinesis

El lenguaje de programación será Python 3.7

Clic en Crear una función

En el nombre de tabla agregar : purchase

Clave principal : purchase_id

Desmarcar la opción de Configuración de la tabla

Modo de capacidad de lectura/escritura : Bajo demanda (Autoescalable)

En el nombre de tabla agregar : purchase

Clave principal : purchase_id

Desmarcar la opción de Configuración de la tabla

Modo de capacidad de lectura/escritura : Bajo demanda (Autoescalable)

6. Creación de tópico en SNS y suscriptores

Ir al servicio de SNS, agregar el nombre : topicPurchase y paso siguiente.

Clic en Crear una suscripción

Nos llegará un correo para confirmar la suscripción al tópico, y poder recibir correo por el servicio de SNS:

Nos llegará un correo para confirmar la suscripción al tópico, y poder recibir correo por el servicio de SNS:

Y procedemos a confirmar:

El mensaje debe ser confirmado para recibir mensajes por AWS SNS.

7. Actualización de la función lambda

Actualizar el rol, entrar a la función Lambda Ingest-Dynamo-Input-Kinesis

Clic donde se indica la flecha.

Clic en la opción de expandir.

Editar la Politica:

Click en la opción de JSON: La función Lambda solo debe tener los permisos necesarios.

Abrir el archivo policy.json, copiar y pegar el contenido en la pestaña JSON

8. Agregar el desencadenador de Kinesis.

Abrir el archivo lambda.py, copiar y pegar el contenido del código en la función Lambda.

En la línea 34 cambiar el XXXXXXXXXX por el ID de cuenta de cada uno.

9. Prueba end to end

Ejecutar el archivo Python en la EC2

python3 write-kinesis-purchase.py

Verificar que se hayan ingestado los datos a DynamoDB y si se tiene dentro de la compra una Raspberry Pi 4B debe llegar un mensaje de correo.

es un servicio de extracción transformación y carga (ETL) el cual permite preparar y cargar los datos para su análisis.Permite inferir y generar la metada de los datos alojados en S3, RDS y RedShift

Se conecta al almacen de datos, avanza por una lista de clasificados, ordena por prioridad y crea tablas de metadatos en el catálogo de datos

  • Automáticamente genera el código.
  • Se puede programar en Scalao Python
  • Permite la encriptación en tránsito (SSL) y en reposo.
  1. Entramos a la consola de AWS y accedemos al servicio de S3

Bucket : aws-glue-lmgs (los últimos 4 caracteres cambiarlos por las iniciales de nuestros nombres)

Creamos una carpeta /data/input/tables/jugadores

Subir el archivo csv players_20.csv dentro de la carpeta /data/input/tables/jugadores

2. Entrar al servicio de Glue

3. Opción Rastreadores o Crawler (en inglés)

4. Agregamos el nombre jugadores, clic en Siguiente.

5. Seleccionamos la opción : Data Stores (ya que a partir de un csv se creará una tabla)

6. Elegimos S3, y seleccionamos la carpeta donde se encuentra el archivo csv, clic en Siguiente.

7. En este caso, solo añadiremos un almacén de datos (tabla), elegimos No y clic en Siguiente.

8. Creamos un nuevo rol, que tendrá el permiso de leer el archivo csv de S3 y crear una tabla en Glue.

9. Nombre del rol : AWSGlueServiceRole-Crawler

10. Seleccionamos : Ejecutar bajo demanda, clic en Siguiente

11. Añadimos una nueva base de datos, le ponemos como nombre fifa, clic en Siguiente

12. Clic en Finalizar.

13. Por último para ejecutar este rastreador, le damos clic en ¿Desea ejecutarlo ahora?

Ahora vemos que el rastreador se ha ejecutado satisfactoriamente y ha añadido una nueva tabla en Glue.

1. Podemos realizar una consulta SQL a esta tabla, para eso vamos a acceder al servicio de Athena

2. Ejecutamos otro query con un filtro específico. select * from fifa.jugadores where club = ‘FC Barcelon

Autores:

  • Santiago Camacho
  • Christian Gutiérrez
  • Bryan Landázuri

Conoce más: bootcampai.org/aws-big-data

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store