Bienvenida

1

Creación de Aplicaciones Serverless Avanzadas en AWS

2

Mejorando Proyectos Serverless con Buenas Prácticas y Funcionalidades

Buenas prácticas en serverless

3

Integración de Servicios AWS en Proyectos Serverless Avanzados

4

Buenas Prácticas con Serverless Framework en AWS

Serverless no es solo lambda

5

Validación de Lógica de Negocio con API Gateway y JSON Schema

6

Integración de Servicios AWS en Arquitecturas Serverless

7

Subida Segura de Archivos a S3 usando URLs Firmadas

8

Creación y Configuración de Buckets S3 con CloudFormation

9

Generación de URLs firmadas con AWS Lambda y API Gateway

Lambda layers

10

Procesador de Imágenes Asíncrono con AWS Lambda y S3

11

Optimización de Lambda con Layers en AWS y Serverless Framework

12

Automatización de Lambda Layers con GitHub Actions y Serverless Framework

Asegurando nuestra app serverless

13

Seguridad en Aplicaciones Serverless con API Gateway y Custom Authorizers

14

Uso de API Keys en Serverless Framework y API Gateway

15

Creación de Custom Authorizers en AWS con Serverless Framework

16

Autorización Personalizada con AWS Lambda y Custom Authorizer

Conectando ApiGateway con SQS

17

Asincronismo y Lambda: Implementación en AWS Serverless

18

Suma de Likes Asíncrona con AWS Lambda y SQS

19

Implementación Asíncrona de Likes con AWS Lambda y DynamoDB

Bonus

20

Configuración de Dominios Personalizados en AWS API Gateway

21

Configuración de Dominios Personalizados con Serverless Framework

22

Experiencias y desafíos en el desarrollo con Serverless en AWS

Cierra del curso

23

Resumen del Curso Serverless en AWS

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Implementación Asíncrona de Likes con AWS Lambda y DynamoDB

19/24
Recursos

¿Cómo se suma likes de manera asíncrona y segura en una aplicación?

Sumar likes a una aplicación es una funcionalidad común en las redes sociales y otras plataformas interactivas. Sin embargo, hacerlo de manera eficiente y segura requiere de un enfoque cuidadoso, especialmente cuando se trata de una base de datos que debe manejar grandes volúmenes de tráfico. En esta sección, exploraremos cómo implementar una lógica para sumar likes de forma asíncrona utilizando una función Lambda y Amazon DynamoDB.

¿Qué es DynamoDB y por qué usarlo?

Amazon DynamoDB es una base de datos NoSQL que ofrece características poderosas para manejar grandes volúmenes de datos con rapidez y eficiencia.

  • Escalabilidad: DynamoDB está diseñado para manejar cualquier cantidad de tráfico de lectura y escritura.
  • Eficiencia: Ofrece métodos para realizar actualizaciones atómicas y operaciones complejas con facilidad.
  • Resiliencia: Es conocido por su capacidad para manejar particiones y fallos de nodos sin pérdida de datos.

¿Cómo funciona la Lambda para sumar likes?

La función Lambda que crearemos será la encargada de recibir solicitudes y actualizarlas en DynamoDB. A continuación, se detalla el proceso paso a paso:

1. Requerimiento del SDK de Amazon

Primero, requerimos el SDK de Amazon, esencial para interactuar con DynamoDB desde la función Lambda:

const AWS = require('aws-sdk');
const dynamoDB = new AWS.DynamoDB.DocumentClient();

2. Manejo del parámetro "sleep"

Incluimos una función sleep para controlar la espera entre las operaciones:

const sleep = (milliseconds) => {
  return new Promise(resolve => setTimeout(resolve, milliseconds));
};

3. Extracción del body de la solicitud

Desde el cuerpo de la solicitud POST se extrae el ID que identificará al usuario en la base de datos:

const { id } = JSON.parse(event.body);

4. Actualización en DynamoDB

Usamos la capacidad de DynamoDB para incrementar de manera segura el número de likes:

await dynamoDB.update({
  TableName: 'TablaDeUsuarios',
  Key: { id },
  UpdateExpression: 'ADD likes :inc',
  ExpressionAttributeValues: { ':inc': 1 }
}).promise();

¿Cómo se gestionan las pruebas del sistema?

Después de implementar la función Lambda, es crucial probar su funcionalidad para asegurar su correcto funcionamiento y eficiencia.

Uso de herramientas para probar las Lambdas

  • Serverless Framework: nos ayuda a desplegar y gestionar nuestras funciones sin problemas de peso excesivo gracias a su configuración de ignorar archivos no necesarios.
  • Postman: Permite enviar solicitudes HTTP para comprobar que la lógica de actualización de likes es correcta y eficiente.

Pruebas y validaciones

Realizamos pruebas simulando el envío de múltiples "likes" para detectar cómo se comporta la base de datos bajo carga y verificar la resiliencia del sistema.

¿Cuáles son los beneficios de esta implementación?

Esta aplicación de likes asíncrona y segura proporciona varios beneficios:

  • Desacoplamiento: El uso de colas para gestionar likes desacopla la suma de la carga directa en la base de datos.
  • Optimización de recursos: La aplicación no colapsa ante grandes volúmenes de tráfico y aprovecha la eficiencia de DynamoDB.
  • Mejores prácticas de desarrollo: Obtener una aplicación mejor diseñada y que sigue patrones modernos y seguros.

Con esta lógica y tecnología, podrás ofrecer una experiencia fluida y eficiente para los usuarios mientras mantienes tu sistema seguro y estable. Continúa explorando y mejorando tus conocimientos de programación en AWS y desarrollo de aplicaciones escalables y confiables. ¡Buen aprendizaje!

Aportes 1

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Con este codigo se ignoran todos los archivos, luego por función se van asignando. Lo he probado y funciona bien.

package:
  individually: true
  patterns:
    - "!*/**"
    - "!**"