Destinos de buses de eventos en Amazon EventBridge
Un destino es un recurso o punto de conexión al que EventBridge envía un evento cuando el evento coincide con el patrón de eventos definido para una regla. La regla procesa los datos del evento y envía la información pertinente al destino. Para entregar datos de eventos a un destino, EventBridge necesita permiso para acceder al recurso de destino. Puede definir hasta cinco destinos para cada regla.
Cuando se agregan destinos a una regla y esa regla se ejecuta poco después, es posible que los destinos actualizados no se invoquen inmediatamente. Espere un breve periodo para que los cambios surtan efecto.
En el siguiente vídeo se describen los aspectos básicos de los destinos:
Destinos de buses de eventos disponibles en la consola de EventBridge
Puede configurar los siguientes tipos de destino para reglas en la consola de EventBridge:
Destinos de la API
Los destinos de la API son puntos de conexión HTTPS que puede invocar como destino de una regla de bus de eventos. Al especificar un destino de la API como destino de una regla, EventBridge invoca el punto de conexión HTTPS para cualquier evento que coincida con el patrón de eventos especificado en la regla y, a continuación, entrega la información del evento con la solicitud. Para obtener más información, consulte Destinos de la API.
Buses de eventos
Puede especificar otros buses de eventos como destinos de las reglas. Esto incluye los buses de eventos de la misma cuenta o de cuentas de AWS diferentes.
AWSServicios de
Puede hacer que EventBridge envíe eventos a varios recursos de servicio de AWS. Entre ellos se incluyen:
-
CodePipeline
-
Llamada a la API
CreateSnapshotde Amazon EBS -
Generador de Imágenes de EC2
-
Llamada a la API
RebootInstancesde EC2 -
Llamada a la API
StopInstancesde EC2 -
Llamada a la API
TerminateInstancesde EC2 -
Flujo de entrega de Firehose
-
Flujo de trabajo de Glue
-
Plantilla de evaluación del inspector
-
Flujo de Kinesis
-
Función de Lambda (ASYNC)
-
Consultas de API de datos de grupos de trabajo de Amazon Redshift sin servidor
-
Canalización de SageMaker AI
-
Tema de Amazon SNS
-
Máquina de estado de Step Functions (ASYNC)
-
Automatización de Systems Manager
-
Administrador de sistemas OpsItem
-
Systems Manager Run Command
Parámetros de destino
Algunos destinos no envían la información de la carga del evento al destino, sino que tratan el evento como un desencadenante para invocar una API específica. EventBridge utiliza los parámetros de Destino para determinar qué ocurre con ese destino. Estos incluyen los siguientes:
-
Destinos de la API
Los datos enviados a un destino de la API deben coincidir con la estructura de la API. Use el objeto
InputTransformerpara asegurarse de que los datos estén estructurados correctamente. Si desea incluir la carga útil del evento original, haga referencia a ella enInputTransformer. -
API Gateway
Los datos enviados a una puerta de enlace de la API deben coincidir con la estructura de la API. Use el objeto
InputTransformerpara asegurarse de que los datos estén estructurados correctamente. Si desea incluir la carga útil del evento original, haga referencia a ella enInputTransformer. -
Amazon EC2 Image Builder
-
Clústeres de la API de datos de Amazon Redshift
Utilice
RedshiftDataParameters. -
Canalizaciones de creación de modelos de tiempo de ejecución de Amazon SageMaker
Utilice
SageMakerPipelineParameters. -
Colas FIFO de Amazon SQS
Utilice
SqsParameterspara especificar el grupo de mensajes que se usará como destino.
nota
EventBridge no admite toda la sintaxis de ruta JSON y la evalúa en tiempo de ejecución. La sintaxis admitida incluye:
notación de puntos (por ejemplo,
$.detail)guiones
guiones bajos
Caracteres alfanuméricos
índices de matrices
caracteres comodín (*)
Parámetros de ruta dinámicos
Algunos parámetros de destino admiten sintaxis de ruta JSON dinámica opcional. Esta sintaxis le permite especificar rutas JSON en lugar de valores estáticos (por ejemplo$.detail.state). El valor completo debe ser una ruta JSON, no solo una parte de ella. Por ejemplo, RedshiftParameters.Sql puede ser $.detail.state, pero no puede ser "SELECT * FROM $.detail.state". Estas rutas se sustituyen dinámicamente en tiempo de ejecución por datos de la propia carga del evento en la ruta especificada. Los parámetros de ruta dinámicos no pueden hacer referencia a valores nuevos o transformados que resulten de la transformación de entrada. La sintaxis admitida para las rutas JSON con parámetros dinámicos es la misma que cuando se transforma la entrada. Para obtener más información, consulte Transformación de entradas de Amazon EventBridge
La sintaxis dinámica se puede utilizar en todos los campos non-enum de cadena de estos parámetros:
-
HttpParameters(excepto clavesHeaderParameters)
Permisos
Para realizar llamadas a la API en los recursos que posee, EventBridge necesita los permisos adecuados. Especifique un rol de ejecución de la IAM mediante la consola de EventBridge o configurando el parámetro RoleARN en PutTargets.
Por ejemplo, la siguiente política define el permiso para enviar mensajes a una cola de Amazon SQS:
Y la siguiente política de confianza permite a EventBridge asumir el rol:
Puede invocar un punto de conexión de API Gateway con la autorización de la IAM configurada, pero la función es opcional si no ha configurado la autorización. Para obtener más información, consulte Amazon EventBridge y AWS Identity and Access Management.
Si otra cuenta se encuentra en la misma región y le dio permiso, puede enviar eventos a esa cuenta.
Para obtener más información, consulte Envío y recepción de eventos entre cuentas de AWS de Amazon EventBridge.
Si su destino, como una cola de Amazon SQS, usa el cifrado AWS Key Management Service (AWS KMS), debe incluir la siguiente sección en su política de claves de KMS:
{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }
Colas de trabajo de AWS Batch como destinos
Algunos parámetros del objeto submitJob de AWS Batch se pueden configurar a través de BatchParameters.
Otros se pueden especificar la carga del evento. Si la carga del evento (transferida a InputTransformers o a través de estos) contiene las siguientes claves, estas se asignan a parámetros de solicitud submitJob:
ContainerOverrides: containerOverridesnota
Esto incluye solo el comando, el entorno, la memoria y las vCPU
DependsOn: dependsOnnota
Esto incluye solo jobld
Parameters: parameters
Grupos de Registros de CloudWatch como destinos
Si no usa un InputTransformer con un destino de CloudWatch Logs, la carga del evento se usa como mensaje de registro y el origen del evento como marca de tiempo. Si utiliza un InputTransformer, la plantilla debe ser:
{"timestamp":<timestamp>,"message":<message>}
EventBridge agrupa las entradas enviadas a un flujo de registro; por lo tanto, EventBridge puede entregar uno o varios eventos a un flujo de registro, en función del tráfico.
Proyectos de CodeBuild como destinos
EventBridge admite compilaciones estándar y por lotes como destinos.
Si utiliza un transformador de entrada para configurar el evento de origen para que coincida con la estructura StartBuildRequest antes de que se entregue a un destino de CodeBuild, los parámetros se asignarán 1 a 1 y se transferirán a codeBuild.StartBuild de forma predeterminada.
Para pasarle los parámetros a codeBuild.StartBuildBatch, debe transformar el evento de origen para que coincida con la estructura StartBuildBatchRequest y añadirle el siguiente par clave/valor a la raíz del evento transformado:
"buildType": "BATCH"
Tareas de Amazon ECS como destinos
Si utiliza InputTransformers para configurar el evento de entrada a un Destino que coincida con la estructura TaskOverride de Amazon ECS Run Task, los parámetros se asignarán 1 a 1 y se transferirán a ecs.RunTask.
Planes de respuesta de Incident Manager como destinos
Si el evento coincidente provino de CloudWatch Alarms, los detalles del cambio de estado de la alarma se incluyen en los detalles del desencadenador de la llamada StartIncidentRequest al Administrador de Incidentes.
Colas de Amazon SQS como destinos
EventBridge no admite el uso de colas de Amazon SQS cifradas con una Clave propiedad de AWS. Esto incluye los objetivos, así como las colas de Amazon SQS especificadas como colas de mensajes fallidos para los destinos. Para obtener más información sobre Claves propiedad de AWS, consulte las claves propiedad de AWS en la Guía para desarrolladores de AWS Key Management Service.