Saltar al contenido
aprendeaws.dev

Módulo 9 · Eventos, colas y mensajería/Lección 57

EventBridge: el bus de eventos

Eventos de AWS, de tus apps y de terceros llegan a un bus; las reglas deciden a dónde va cada uno.

Al terminar podrás

  • →Explicar buses, eventos, reglas y destinos
  • →Programar tareas con EventBridge Scheduler
  • →Elegir entre EventBridge, SNS y SQS

Un evento es un aviso de que algo pasó: una instancia se detuvo, alguien subió un archivo, un cliente pagó. Amazon EventBridge es un servicio serverless que recibe esos eventos en un bus y, según reglas que tú escribes, los envía a los destinos que deben reaccionar.

AWS CloudRegión us-east-1la ciudadpedido creadoregla 1regla 2regla 3LambdapedidosEventBridgebus de eventosSQScola de facturaciónDLQmensajes fallidosLambdafacturaSNSavisosCorreoal clienteStep Functionsflujo de envíoLambdatransportadora

Pasa el mouse para ver qué es cada pieza; haz clic para abrir su ficha. En el celular, usa los botones de abajo.

Amazon EventBridge

Bus de eventos

AnalogíaLa central de despacho: recibe cada aviso y decide a quién mandarlo.

Un evento es un JSON con una fuente, un tipo y los datos. El bus lo compara con las reglas y lo entrega a cada destino que coincida.

Además de tus eventos, recibe los de los servicios de AWS y los de aplicaciones de terceros.

Buses, eventos, reglas y destinos

  • Bus de eventos

    El canal que recibe los eventos. Puedes tener varios en una cuenta.
  • Regla

    Un patrón que describe qué eventos le interesan y a qué destinos enviarlos.
  • Destinos

    Lambda, colas de SQS, temas de SNS, Step Functions, otro bus, una API HTTP y muchos servicios más.

Hay tres tipos de bus:

  • Default: cada cuenta tiene uno. Ahí llegan solos los eventos de los servicios de AWS.
  • Custom: los que creas tú para los eventos de tus aplicaciones, como «pedido creado».
  • Partner: reciben eventos de aplicaciones SaaS integradas con EventBridge, como herramientas de soporte, pagos o monitoreo, sin que tengas que montar webhooks.

Eventos en JSON y reglas con patrones

Todo evento es un documento JSON con campos comunes. Este lo genera EC2 cuando una instancia se detiene:

{
  "source": "aws.ec2",
  "detail-type": "EC2 Instance State-change Notification",
  "detail": {
    "instance-id": "i-0abc123def456",
    "state": "stopped"
  }
}

Una regla tiene un patrón de evento con la misma forma. Si el evento coincide, la regla lo envía a sus destinos. Este patrón captura solo las instancias que se detienen:

{
  "source": ["aws.ec2"],
  "detail-type": ["EC2 Instance State-change Notification"],
  "detail": { "state": ["stopped"] }
}

Con esa regla y un tema de SNS como destino, el equipo recibe un aviso cada vez que una instancia se detiene. Sin código y sin servidores revisando el estado cada minuto.

Programar tareas con EventBridge Scheduler

No todo empieza con un evento. A veces necesitas que algo pase a cierta hora: un reporte cada lunes a las 7:00, apagar los ambientes de pruebas cada noche, recordarle a un cliente que su prueba gratis vence en tres días. EventBridge Scheduler crea programaciones con expresiones cron o rate, únicas o recurrentes, con zona horaria, que invocan un destino de AWS a la hora indicada. Es el reemplazo serverless del cron de un servidor.

EventBridge, SNS o SQS

CriterioEventBridgeSNSSQS
ModeloBus con reglas que enrutan por contenidoPub/sub: todos los suscriptores recibenCola: un consumidor procesa cada mensaje
FuentesServicios de AWS, tus apps y socios SaaSTus apps y algunos servicios de AWSTus apps y algunos servicios de AWS, como S3
FiltradoPatrones ricos sobre cualquier campo del eventoPolíticas de filtro por suscripciónNo filtra; el consumidor recibe lo que hay
Guarda mensajesNo, salvo archivo para reproducir eventosNoSí, hasta 14 días
Elígelo paraReaccionar a eventos de AWS o SaaS y enrutar entre muchos serviciosAvisar a muchos a la vez, incluidas personas por correo o SMSRepartir trabajo y absorber picos

No compiten: se combinan. Es común que una regla de EventBridge envíe a una cola de SQS para que el consumidor procese a su ritmo.

Cuando la reacción a un evento tiene varios pasos en orden, con reintentos y decisiones, entra Step Functions. Para el panorama completo, vuelve a desacoplar.

Quiz

Pon a prueba lo que aprendiste

0 de 5 correctas · 5 sin responder

  1. 1.Una empresa quiere ejecutar una función Lambda cada vez que una instancia EC2 cambia a estado «stopped». ¿Qué usa?

  2. 2.¿Qué tipo de bus recibe eventos de aplicaciones SaaS de terceros?

  3. 3.Necesitas generar un reporte todos los días a las 6:00 sin mantener un servidor con cron. ¿Qué servicio usas?

  4. 4.¿En qué formato llegan los eventos a un bus de EventBridge?

  5. 5.Quieres que los pedidos se procesen a ritmo propio y que ninguno se pierda si el procesador se cae. ¿Qué agregas como destino de la regla?