Destinos de buses de eventos en Amazon EventBridge - Amazon EventBridge

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:

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 InputTransformer para asegurarse de que los datos estén estructurados correctamente. Si desea incluir la carga útil del evento original, haga referencia a ella en InputTransformer.

  • API Gateway

    Los datos enviados a una puerta de enlace de la API deben coincidir con la estructura de la API. Use el objeto InputTransformer para asegurarse de que los datos estén estructurados correctamente. Si desea incluir la carga útil del evento original, haga referencia a ella en InputTransformer.

  • 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 SqsParameters para 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:

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:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": [ "arn:aws:sqs:us-east-1:111122223333:sqs-queue-name" ] } ] }

Y la siguiente política de confianza permite a EventBridge asumir el rol:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

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: containerOverrides

    nota

    Esto incluye solo el comando, el entorno, la memoria y las vCPU

  • DependsOn: dependsOn

    nota

    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.