Cómo Crear una Aplicación con AWS Lambda

AWS Lambda es un servicio de Amazon Web Services (AWS) que permite ejecutar tu código en respuesta a eventos sin tener que gestionar servidores. Es una forma sencilla y escalable de construir aplicaciones.

En este tutorial, te mostraré cómo utilizar AWS Lambda junto con tres servicios adicionales:

  • Amazon S3 para almacenar archivos, imágenes y videos.
  • Amazon Simple Notification Service (SNS) para enviar notificaciones.
  • Amazon EventBridge para programar mensajes.

Al final, con la integración de estos servicios, habrás creado una Aplicación de Citas de Manifestación de Metas que envía mensajes inspiradores aleatorios para mantenerte motivado y enfocado en tus metas.

Requisitos Previos

  • Una cuenta de AWS (si no tienes una, regístrate aquí).
  • Un repositorio de GitHub para almacenar tu código fuente.
  • Un Entorno de Desarrollo Integrado (IDE) como Visual Studio Code o Sublime Text.
  • Conocimiento básico de desarrollo web y cualquier lenguaje de programación de tu elección (yo usé Python para este tutorial).

Paso 1: Configurar tu entorno de desarrollo

En este paso, configurarás todo lo necesario. Comienza por iniciar sesión en tu cuenta de AWS, luego instala Python si no lo tienes en tu IDE.

Paso 2: Crear un Amazon Simple Storage Service (S3)

Amazon S3 (Simple Storage Service) es un servicio de almacenamiento que te permite guardar y acceder a cualquier cantidad de datos. Puedes usarlo para almacenar fotos, videos, documentos y respaldos.

Crear un bucket en S3

  • Usa la línea de comandos de Ubuntu (CMD), tu terminal o Amazon CloudShell.
  • Sigue la documentación de boto3 s3 para ver los comandos necesarios y crear el bucket.
  • Una vez creado, sube archivos desde la consola de Amazon.

Paso 3: Crear un Amazon Simple Notification Service (SNS)

SNS es un servicio de mensajería completamente administrado que facilita la comunicación entre aplicaciones o directamente con los usuarios.

Crear un SNS

  1. Inicia sesión en la consola de AWS y navega a SNS.
  2. Crea un nuevo Topic.
  3. Agrega suscripciones (por ejemplo, correo electrónico o SMS) para recibir mensajes.
  4. Confirma la suscripción, según sea necesario.

Paso 4: Crear una Política IAM

Una Política IAM autoriza a Lambda a activar un evento y asegura que CloudWatch supervise los eventos de la aplicación.

Crear la política

  1. En la consola de AWS, selecciona Policies y luego Create policy.
  2. Crea una política que permita a Lambda publicar mensajes en el SNS.
  3. Adjunta esta política al rol de ejecución de Lambda.

Paso 5: Crear una función de Amazon Lambda

Amazon Lambda es un servicio que permite ejecutar código sin gestionar servidores. Cargas tu código y Lambda lo ejecuta automáticamente cuando es necesario.

Crear una función Lambda

  1. Inicia sesión en la consola de AWS y navega a Lambda.
  2. Crea una función desde cero, eligiendo el runtime (Python, Node.js, etc.).
  3. Agrega el código necesario para obtener una cita inspiradora desde una API y publicarla en SNS.

Ejemplo de código en Python:

import os
import json
import urllib.request
import boto3

def fetch_random_quote():
    api_url = "https://zenquotes.io/api/random"
    try:
        with urllib.request.urlopen(api_url) as response:
            data = json.loads(response.read().decode())
            if data and isinstance(data, list):
                quote = data[0].get("q", "No quote available")
                author = data[0].get("a", "Unknown author")
                return f'"{quote}" - {author}'
            else:
                return "No quote available."
    except Exception as e:
        print(f"Error fetching random quote: {e}")
        return "Failed to fetch quote."

def lambda_handler(event, context):
    sns_topic_arn = os.getenv("SNS_TOPIC_ARN")
    sns_client = boto3.client("sns")

    quote = fetch_random_quote()
    print(f"Fetched Quote: {quote}")

    try:
        sns_client.publish(
            TopicArn=sns_topic_arn,
            Message=quote,
            Subject="Daily Random Quote"
        )
        print("Quote published to SNS successfully.")
    except Exception as e:
        print(f"Error publishing to SNS: {e}")
        return {"statusCode": 500, "body": "Error publishing to SNS"}

    return {"statusCode": 200, "body": "Quote sent to SNS"}

Paso 6: Crear un EventBridge

Amazon EventBridge ayuda a conectar aplicaciones y servicios de AWS como SNS y Lambda.

Crear una regla en EventBridge

  1. Navega a EventBridge en la consola de AWS.
  2. Crea una nueva regla para ejecutar la función Lambda a intervalos regulares usando una programación cron.

Paso 7: Subir tu código

Finalmente, sube tu código a GitHub y agrega documentación para explicar cómo funciona.


Conclusión

Si seguiste todos los pasos, habrás creado una Aplicación de Citas de Manifestación de Metas usando AWS Lambda, Amazon S3, Amazon SNS, y Amazon EventBridge. Esta aplicación obtiene citas motivacionales y las envía a los suscriptores de forma programada.


Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario