Introducción

Amazon EventBridge es un servicio de bus de eventos que facilita la conexión de aplicaciones utilizando datos de tus propias aplicaciones, aplicaciones SaaS (Software as a Service) y servicios de AWS. EventBridge permite crear arquitecturas basadas en eventos, lo que facilita la construcción de aplicaciones que reaccionan a eventos en tiempo real.

Conceptos Clave

  1. Eventos: Son los datos que describen un cambio en el estado de un sistema. Por ejemplo, un evento puede ser la creación de un nuevo usuario en una aplicación.
  2. Fuentes de Eventos: Son los productores de eventos. Pueden ser servicios de AWS, aplicaciones SaaS o tus propias aplicaciones.
  3. Buses de Eventos: Son los canales a través de los cuales los eventos se transmiten. EventBridge permite crear múltiples buses de eventos.
  4. Reglas: Definen los criterios para seleccionar eventos y las acciones a tomar cuando se detecta un evento que coincide con esos criterios.
  5. Destinos: Son los consumidores de eventos. Pueden ser servicios de AWS como AWS Lambda, Amazon SNS, Amazon SQS, entre otros.

Configuración Básica

Paso 1: Crear un Bus de Eventos

  1. Accede a la consola de administración de AWS.
  2. Navega a Amazon EventBridge.
  3. En el panel de navegación, selecciona Buses de eventos.
  4. Haz clic en Crear bus de eventos.
  5. Ingresa un nombre para tu bus de eventos y haz clic en Crear.

Paso 2: Crear una Regla

  1. En la consola de EventBridge, selecciona tu bus de eventos.
  2. Haz clic en Crear regla.
  3. Ingresa un nombre y una descripción para la regla.
  4. Define el patrón de eventos que deseas capturar. Puedes usar patrones predefinidos o crear uno personalizado.
  5. Selecciona el destino al que deseas enviar los eventos que coincidan con la regla.
  6. Configura las opciones adicionales según sea necesario y haz clic en Crear regla.

Ejemplo Práctico

Supongamos que deseas capturar eventos de creación de instancias en Amazon EC2 y enviar una notificación a un tema de Amazon SNS.

Crear el Bus de Eventos

import boto3

client = boto3.client('events')

response = client.create_event_bus(
    Name='MyCustomEventBus'
)
print(response)

Crear la Regla

import boto3

client = boto3.client('events')

response = client.put_rule(
    Name='EC2InstanceLaunchRule',
    EventPattern='{
        "source": ["aws.ec2"],
        "detail-type": ["EC2 Instance State-change Notification"],
        "detail": {
            "state": ["running"]
        }
    }',
    State='ENABLED',
    EventBusName='MyCustomEventBus'
)
print(response)

Agregar el Destino

import boto3

client = boto3.client('events')

response = client.put_targets(
    Rule='EC2InstanceLaunchRule',
    Targets=[
        {
            'Id': '1',
            'Arn': 'arn:aws:sns:us-east-1:123456789012:MySNSTopic'
        }
    ],
    EventBusName='MyCustomEventBus'
)
print(response)

Ejercicio Práctico

Ejercicio 1: Capturar Eventos de Creación de Usuarios

  1. Objetivo: Capturar eventos de creación de usuarios en una aplicación y enviar una notificación a un tema de Amazon SNS.
  2. Pasos:
    • Crear un bus de eventos.
    • Crear una regla que capture eventos de creación de usuarios.
    • Configurar un destino para enviar notificaciones a un tema de Amazon SNS.

Solución

Crear el Bus de Eventos

import boto3

client = boto3.client('events')

response = client.create_event_bus(
    Name='UserCreationEventBus'
)
print(response)

Crear la Regla

import boto3

client = boto3.client('events')

response = client.put_rule(
    Name='UserCreationRule',
    EventPattern='{
        "source": ["my.application"],
        "detail-type": ["User Created"],
        "detail": {
            "status": ["created"]
        }
    }',
    State='ENABLED',
    EventBusName='UserCreationEventBus'
)
print(response)

Agregar el Destino

import boto3

client = boto3.client('events')

response = client.put_targets(
    Rule='UserCreationRule',
    Targets=[
        {
            'Id': '1',
            'Arn': 'arn:aws:sns:us-east-1:123456789012:UserCreationTopic'
        }
    ],
    EventBusName='UserCreationEventBus'
)
print(response)

Errores Comunes y Consejos

  1. Error en el Patrón de Eventos: Asegúrate de que el patrón de eventos esté correctamente formateado y coincida con los eventos que deseas capturar.
  2. Permisos Insuficientes: Verifica que las políticas de IAM permitan a EventBridge publicar eventos en el destino configurado.
  3. Configuración del Destino: Asegúrate de que el destino esté correctamente configurado y sea accesible.

Conclusión

Amazon EventBridge es una herramienta poderosa para construir aplicaciones basadas en eventos. Permite la integración fluida de diferentes servicios y aplicaciones, facilitando la creación de sistemas reactivos y escalables. Con los conceptos y ejemplos proporcionados, deberías estar listo para comenzar a utilizar EventBridge en tus propios proyectos.

En el próximo módulo, exploraremos más herramientas para desarrolladores en AWS, comenzando con AWS CodeCommit.

© Copyright 2024. Todos los derechos reservados