0Pricing
Cloud & IT Cert Prep · Lección

EventBridge: bus de eventos y reglas

Publique eventos en un bus personalizado de EventBridge, escriba reglas de patrones de eventos para filtrarlos y enrútelos a destinos de Lambda, SQS o Step Functions

EventBridge: bus de eventos y reglas es una lección gratuita de Cloud & IT Cert Prep en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Cloud & IT Cert Prep, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.

¿Qué es Amazon EventBridge?

Amazon EventBridge (anteriormente CloudWatch Events) es un bus de eventos sin servidor que facilita la conexión de aplicaciones mediante eventos de servicios de AWS, sus propias aplicaciones y proveedores de SaaS. Los eventos son objetos JSON; EventBridge los dirige a uno o varios destinos según las reglas de patrones de eventos. A diferencia de SQS (punto a punto), EventBridge es una capa de enrutamiento pub/sub: un evento puede distribuirse simultáneamente a muchos destinos.

Buses de eventos: predeterminado, personalizado y de socios

EventBridge tiene tres tipos de buses de eventos. El bus predeterminado recibe eventos de servicios de AWS (cambios de estado de EC2, eventos de S3, llamadas a la API de CloudTrail, etc.). Los buses personalizados son buses que crea para los eventos de sus propias aplicaciones; permiten aislarlos de los eventos de los servicios de AWS. Los buses de socios reciben eventos directamente de proveedores de SaaS (Zendesk, Datadog, GitHub y Shopify) mediante integraciones prediseñadas, sin necesidad de una Lambda que realice sondeos.

# Create a custom event bus for your application
aws events create-event-bus --name my-app-bus

# Put a custom event onto the bus
aws events put-events --entries '[{
  "Source": "com.myapp.orders",
  "DetailType": "OrderPlaced",
  "Detail": "{\"orderId\": \"ORD-123\", \"total\": 99.99}",
  "EventBusName": "my-app-bus"
}]'

Reglas de patrones de eventos

Una regla de patrón de eventos define qué eventos deben coincidir mediante un patrón JSON que filtra cualquier combinación de campos del evento (source, detail-type, account, region o campos dentro del objeto detail). EventBridge evalúa cada evento con respecto a todas las reglas del bus. Los eventos coincidentes se reenvían a los destinos configurados para la regla. Las reglas se combinan con OR en el nivel de regla y con AND dentro de un objeto de patrón.

# Create a rule that matches EC2 instance state changes to 'stopped'
aws events put-rule \
  --name ec2-stopped-alert \
  --event-bus-name default \
  --event-pattern '{
    "source": ["aws.ec2"],
    "detail-type": ["EC2 Instance State-change Notification"],
    "detail": {
      "state": ["stopped"]
    }
  }' \
  --state ENABLED

Configuración de destinos

EventBridge puede dirigir los eventos coincidentes a más de 20 tipos de destinos, incluidas funciones de Lambda, colas de SQS, temas de SNS, máquinas de estado de Step Functions, flujos de datos de Kinesis, puntos de conexión de API Gateway, tareas de ECS e incluso otro bus de EventBridge (para el enrutamiento entre cuentas). Cada regla puede tener hasta 5 destinos. EventBridge invoca los destinos de forma asíncrona y vuelve a intentarlo con retroceso exponencial en caso de error.

# Add an SNS topic and Lambda function as targets for the rule
aws events put-targets \
  --rule ec2-stopped-alert \
  --event-bus-name default \
  --targets '[{
    "Id": "notify-ops",
    "Arn": "arn:aws:sns:us-east-1:123456789012:ops-alerts"
  }, {
    "Id": "auto-remediate",
    "Arn": "arn:aws:lambda:us-east-1:123456789012:function:RestartEC2"
  }]'

Transformación de entrada

De forma predeterminada, EventBridge pasa todo el JSON del evento al destino. Use Input Transformation para modificar la estructura del evento antes de entregarlo: extraer campos específicos, construir un objeto JSON nuevo o crear una cadena personalizada. Esto resulta útil cuando una función de Lambda o un punto de conexión de API espera una estructura de carga útil específica en lugar del envoltorio completo del evento de EventBridge, ya que evita tener que usar una Lambda de paso únicamente para modificar la estructura de los datos.

# Input transformer: extract orderId and total from detail
# InputPathsMap extracts values by JSON path
{
  'InputPathsMap': {
    'orderId': '$.detail.orderId',
    'total': '$.detail.total'
  },
  'InputTemplate': '{
    "message": "New order <orderId> for $<total>",
    "channel": "ops"
  }'
}

Reglas programadas (Cron/Rate)

Las reglas de EventBridge también pueden activarse según una programación en lugar de coincidir con un evento. Use una expresión rate (por ejemplo, rate(5 minutes)) para activadores a intervalos fijos, o una expresión cron para programaciones basadas en el calendario. Las reglas programadas son ideales para activar funciones de Lambda que ejecuten tareas de limpieza por lotes, envíen informes periódicos o ejecuten tareas nocturnas de DMS, sustituyendo la necesidad de trabajos cron basados en EC2.

# Create a scheduled rule that fires every day at midnight UTC
aws events put-rule \
  --name nightly-cleanup \
  --schedule-expression 'cron(0 0 * * ? *)' \
  --state ENABLED

aws events put-targets \
  --rule nightly-cleanup \
  --targets '[{
    "Id": "cleanup-lambda",
    "Arn": "arn:aws:lambda:us-east-1:123456789012:function:NightlyCleanup"
  }]'

Archivado y reproducción de eventos

EventBridge puede archivar todos los eventos de un bus (o un subconjunto filtrado) en un archivo de eventos y conservarlos durante un periodo configurable. Después, puede reproducir los eventos archivados en el bus en cualquier momento. Esto resulta útil para reproducir eventos con el fin de probar una nueva versión de Lambda, recuperarse de un error por el que un destino no recibió determinados eventos o rellenar un nuevo servicio con eventos históricos. Se trata de una sólida red de seguridad operativa exclusiva de EventBridge frente a otros sistemas pub/sub.

# Create an event archive for the custom bus
aws events create-archive \
  --archive-name my-app-archive \
  --event-source-arn arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus \
  --retention-days 30

# Replay archived events from a specific time window
aws events start-replay \
  --replay-name replay-missed-orders \
  --event-source-arn arn:aws:events:us-east-1:123456789012:archive/my-app-archive \
  --event-start-time 2024-01-10T00:00:00Z \
  --event-end-time 2024-01-10T06:00:00Z \
  --destination '{"Arn": "arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus"}'

Enrutamiento entre cuentas y entre regiones

EventBridge admite el enrutamiento de eventos entre cuentas mediante la creación de una política basada en recursos en el bus de destino de otra cuenta que permita a la cuenta de origen insertar eventos. Esto permite que una cuenta de supervisión centralizada reciba eventos de todas las cuentas de cargas de trabajo, o que se utilice una arquitectura con un bus de servicio compartido en la que un equipo de plataforma dirija los eventos a los buses de los equipos consumidores. El enrutamiento entre regiones funciona de forma similar mediante destinos de buses de eventos entre regiones configurados explícitamente.

# Allow a source account (111111111111) to send events to this bus
aws events put-permission \
  --event-bus-name my-central-bus \
  --action events:PutEvents \
  --principal 111111111111 \
  --statement-id allow-source-account

EventBridge Pipes

EventBridge Pipes crea integraciones punto a punto entre un origen (SQS, Kinesis, DynamoDB Streams o Kafka) y un destino, con filtrado y enriquecimiento opcionales entre ambos (mediante Lambda, Step Functions o API Gateway). Pipes es más sencillo que escribir un consumidor Lambda que realice sondeos: gestiona automáticamente el sondeo, el procesamiento por lotes, el filtrado y el enrutamiento. Use Pipes cuando necesite una conexión directa entre un origen y un destino sin un bus pub/sub completo.

# Create an EventBridge Pipe from SQS to Lambda
aws pipes create-pipe \
  --name sqs-to-processor \
  --source arn:aws:sqs:us-east-1:123456789012:incoming-orders \
  --target arn:aws:lambda:us-east-1:123456789012:function:ProcessOrder \
  --role-arn arn:aws:iam::123456789012:role/PipeRole \
  --source-parameters '{
    "SqsQueueParameters": {"BatchSize": 10}
  }' \
  --filter-criteria '{
    "Filters": [{"Pattern": "{\"body\": {\"orderType\": [\"PRIORITY\"]}}"}]
  }'

EventBridge frente a SNS y SQS

Estos tres servicios se solapan, pero están orientados a distintos casos de uso. SNS: distribución push a suscriptores (correo electrónico, HTTP, SQS o Lambda); pub/sub sencillo sin filtrado. SQS: cola de mensajes duradera para desacoplamiento punto a punto con semántica de extracción por parte del consumidor. EventBridge: bus de enrutamiento basado en el contenido, con registro de esquemas, archivado y reproducción, socios de SaaS y entrega entre cuentas; es ideal para el enrutamiento complejo de eventos entre muchos servicios. Use EventBridge cuando necesite reglas de enrutamiento sofisticadas, no solo una distribución sencilla.

Registro de esquemas de EventBridge

El EventBridge Schema Registry detecta y cataloga automáticamente la estructura de los eventos que circulan por sus buses de eventos. Almacena los esquemas en formato OpenAPI 3.0 para que los desarrolladores puedan descubrir qué eventos están disponibles y generar enlaces de código (Java, Python y TypeScript) que deserialicen los eventos en objetos con tipos. Esto elimina el código manual de análisis de JSON y garantiza la seguridad de tipos entre servicios controlados por eventos. También puede registrar manualmente esquemas de eventos personalizados para los eventos producidos por sus propias aplicaciones.

# Enable schema discovery on a custom event bus
aws schemas create-discoverer \
  --source-arn arn:aws:events:us-east-1:123456789012:event-bus/my-app-bus \
  --description 'Auto-discover schemas from app bus'

# List discovered schemas
aws schemas list-schemas \
  --registry-name discovered-schemas

Comprobación rápida

Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.

Resumen de la lección

En esta lección ha aprendido que EventBridge dirige los eventos mediante reglas de patrones basadas en el contenido hacia varios destinos simultáneamente, que el archivado y la reproducción permiten conservar y volver a procesar eventos históricos sin modificar el código y que EventBridge Pipes proporciona canalizaciones administradas de origen a destino desde fuentes de streaming. A continuación, exploraremos Step Functions para orquestar flujos de trabajo sin servidor de varios pasos.

Preguntas frecuentes

¿La lección «EventBridge: bus de eventos y reglas» es gratis?

Sí — el texto completo de «EventBridge: bus de eventos y reglas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Cloud & IT Cert Prep, actualiza a CoddyKit PRO. El curso de Cloud & IT Cert Prep incluye 4 lecciones en total.

¿Qué aprenderé en «EventBridge: bus de eventos y reglas»?

Publique eventos en un bus personalizado de EventBridge, escriba reglas de patrones de eventos para filtrarlos y enrútelos a destinos de Lambda, SQS o Step Functions Practicas Cloud & IT Cert Prep con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Cloud & IT Cert Prep?

No se requiere experiencia previa. Cloud & IT Cert Prep en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «EventBridge: bus de eventos y reglas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Cloud & IT Cert Prep?

Sí. Cada lección de Cloud & IT Cert Prep incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. EventBridge: bus de eventos y reglas
  2. Step Functions: orquestación de flujos de trabajo sin servidor
  3. Kinesis Data Streams para el procesamiento de eventos en tiempo real
  4. Patrones de coreografía frente a orquestación
← Volver a Cloud & IT Cert Prep