View a markdown version of this page

Los objetivos del autobús de eventos en Amazon EventBridge - Amazon EventBridge

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Los objetivos del autobús de eventos en Amazon EventBridge

Un objetivo es un recurso o punto final EventBridge al que se 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 objetivo, 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.

Los objetivos del bus de eventos están disponibles en la EventBridge consola

Puede configurar los siguientes tipos de objetivos para las reglas de la EventBridge consola:

Parámetros de destino

Algunos objetivos no envían la información de la carga útil del evento al objetivo, sino que tratan el evento como un desencadenante para invocar una API específica. EventBridge usa los parámetros de Target para determinar qué ocurre con ese objetivo. 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.

  • Amazon SageMaker Runtime Model Building Pipelines

    Utilice SageMakerPipelineParameters.

  • Colas para ferias y FIFO de Amazon SQS

    Utilice SqsParameters para especificar el grupo de mensajes que se usará como destino.

  • Systems Manager Run Command

    Se utilizan RunCommandParameters para especificar el documento SSM y las instancias de destino. Para obtener más información, consulte Systems Manager Run Command as a target.

nota

EventBridge no admite toda la sintaxis de rutas de 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 (*)

  • barras diagonales

Parámetros de ruta dinámicos

Los parámetros de rutas dinámicas permiten usar la sintaxis de rutas JSON para hacer referencia a datos de eventos en tiempo de ejecución en lugar de valores estáticos.

Puedes usar la sintaxis de rutas JSON dinámica con parámetros de destino para especificar rutas JSON en lugar de valores estáticos (por ejemplo,$.detail.state).

Requisitos

El valor completo debe ser una ruta JSON, no solo una parte de ella. Por ejemplo:

  • ✓ Correcto: RedshiftParameters.Sql puede ser $.detail.state

  • ✗ Incorrecto: RedshiftParameters.Sql no puede ser "SELECT * FROM $.detail.state"

EventBridge reemplaza estas rutas en tiempo de ejecución por datos de la carga útil del evento en la ruta especificada.

Limitaciones

Los parámetros de ruta dinámica no pueden hacer referencia a valores nuevos o transformados de la transformación de entrada. La sintaxis de la ruta JSON es la misma que la sintaxis de transformación de entradas. Para obtener más información, consulte Transformación EventBridge de entradas de Amazon.

Parámetros admitidos

Puede utilizar la sintaxis dinámica en todos los campos de cadena que no sean de enumeración de los siguientes parámetros:

Permisos

Para realizar llamadas a la API en los recursos que posee, EventBridge necesita los permisos adecuados. Especifica un rol de ejecución de IAM mediante la EventBridge consola o configurando el RoleARN parámetro 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" ] } ] }

Además, la siguiente política de confianza EventBridge permite 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 Enviar y recibir eventos entre AWS cuentas en Amazon EventBridge.

Si su destino, como una cola de Amazon SQS, utiliza 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": "*" }

AWS Batch colas de trabajos como destinos

Ciertos parámetros también se AWS Batch submitJob pueden configurar mediante BatchParameters.

Otros se pueden especificar la carga del evento. Si la carga útil del evento (mediante transferencia o transferencia InputTransformers) contiene las siguientes claves, se asignan a los parámetros de la submitJob solicitud:

  • ContainerOverrides: containerOverrides

    nota

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

  • DependsOn: dependsOn

    nota

    Esto incluye solo jobld

  • Parameters: parameters

CloudWatch Registra los grupos como objetivos

Si no usas un objetivo InputTransformer con CloudWatch registros, la carga útil del evento se usa como mensaje de registro y el origen del evento como marca de tiempo. Si utilizas un InputTransformer, la plantilla debe ser:

{"timestamp":<timestamp>,"message":<message>}

EventBridge agrupa en lotes las entradas enviadas a una secuencia de registros; por lo tanto, EventBridge puede enviar uno o varios eventos a una secuencia de registros, según el tráfico.

CodeBuild los proyectos como objetivos

EventBridge admite compilaciones estándar y por lotes como objetivos.

Si utilizas un transformador de entrada para configurar el evento de origen para que coincida con la StartBuildRequest estructura antes de entregarlo a un CodeBuild destino, los parámetros se asignarán 1 a 1 y se transferirán a codeBuild.StartBuild por defecto.

Para pasarle los parámetros, codeBuild.StartBuildBatch transforme el evento de origen para que coincida con la StartBuildBatchRequest estructura y añada el siguiente key/value par a la raíz del evento transformado:

"buildType": "BATCH"

Tareas de Amazon ECS como destinos

Si usas la forma de un objetivo InputTransformers para que el evento de entrada coincida con la RunTask TaskOverride estructura de Amazon ECS, 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 Alarmas, los detalles del cambio de estado de la alarma se incluyen en los detalles de activación de la StartIncidentRequest llamada al Incident Manager.

El administrador de sistemas ejecuta el comando como objetivo

Si especifica Systems Manager Run Command como destino, EventBridge llama a la SendCommand API en su nombre. Configure el destino mediante RunCommandParameters, que especifica el documento SSM que se va a ejecutar y las instancias o etiquetas de destino.

RunCommandParameterscontiene los siguientes campos:

  • RunCommandTargets— (Obligatorio) Una lista de pares clave-valor que especifican las instancias de destino. Usa Key set to InstanceIds con una lista de ID de instancia o Key establece tag:tag-name con valores de etiqueta para segmentar las instancias por etiqueta. Puedes especificar entre 1 y 5 objetivos de comando de ejecución.

Para especificar qué documento SSM se va a ejecutar y pasarle los parámetros, utilice el Input campo del Target objeto. El Input valor debe ser un objeto JSON con la siguiente estructura:

{ "DocumentName": "document-name", "DocumentVersion": "version", "Parameters": { "parameter-key": ["parameter-value"] } }

Donde:

  • DocumentName— El nombre o ARN del documento SSM que se va a ejecutar.

  • DocumentVersion— (Opcional) La versión del documento. Si se omite, se utiliza la versión predeterminada.

  • Parameters— (Opcional) Un mapa de nombres de parámetros a matrices de valores que coincida con los parámetros definidos en el documento SSM.

Por ejemplo, el siguiente AWS CLI comando crea una regla que ejecuta el AWS-RunShellScript documento en una instancia específica cuando un EventBridge evento coincide:

aws events put-targets --rule "my-rule" --targets '[{ "Id": "ssm-target-1", "Arn": "arn:aws:ssm:region:account-id:document/AWS-RunShellScript", "RoleArn": "arn:aws:iam::account-id:role/EventBridgeSSMRole", "Input": "{\\"Parameters\\":{\\"commands\\":[\\"echo Hello from EventBridge\\"]}}", "RunCommandParameters": { "RunCommandTargets": [{ "Key": "InstanceIds", "Values": ["i-0123456789abcdef0"] }] } }]'
nota

El Input campo del Target objeto se usa para pasar el nombre y los parámetros del documento al comando de ejecución de Systems Manager. Esto es diferente de InputTransformer, que transforma la carga útil del evento. Cuando utilice el comando de ejecución de Systems Manager como destino, defina los parámetros del documento Input y especifique las instancias de destino enRunCommandParameters.

Colas de Amazon SQS como destinos

EventBridge no admite el uso de colas de Amazon SQS cifradas con un. 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 al respecto Claves propiedad de AWS, consulte las claves AWS propias en la Guía para AWS Key Management Service desarrolladores.