Cibles du bus d'événements sur Amazon EventBridge - Amazon EventBridge

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Cibles du bus d'événements sur Amazon EventBridge

Une cible est une ressource ou un point de terminaison qui EventBridge envoie un événement lorsque celui-ci correspond au modèle d'événement défini pour une règle. La règle traite les données de l’événement et envoie les informations pertinentes à la cible. Pour fournir des données d'événements à une cible, vous devez EventBridge disposer d'une autorisation pour accéder à la ressource cible. Vous pouvez définir jusqu’à cinq cibles pour chaque règle.

Lorsque vous ajoutez des cibles à une règle et que cette règle s’exécute peu de temps après, il se peut que les cibles nouvelles ou mises à jour ne soient pas invoquées immédiatement. Les modifications ne prennent pas effet instantanément.

Cibles du bus d'événements disponibles dans la EventBridge console

Vous pouvez configurer les types de cibles suivants pour les règles dans la EventBridge console :

Paramètres de cible

Certaines cibles n'envoient pas les informations contenues dans la charge utile de l'événement à la cible, mais traitent l'événement comme un déclencheur pour appeler une API spécifique. EventBridge utilise les paramètres de la cible pour déterminer ce qui se passe avec cette cible. Cela inclut les éléments suivants :

  • Destinations d’API

    Les données envoyées à une destination d'API doivent correspondre à la structure de l'API. Utilisez l'InputTransformerobjet pour vous assurer que les données sont correctement structurées. Si vous souhaitez inclure la charge utile de l'événement d'origine, référencez-la dans le InputTransformer.

  • API Gateway

    Les données envoyées à API Gateway doivent correspondre à la structure de l'API. Utilisez l'InputTransformerobjet pour vous assurer que les données sont correctement structurées. Si vous souhaitez inclure la charge utile de l'événement d'origine, référencez-la dans le InputTransformer.

  • Amazon EC2 Image Builder

  • Clusters d'API Amazon Redshift Data

    Utilisez RedshiftDataParameters.

  • Pipelines de création de modèles Amazon SageMaker Runtime

    Utilisez SageMakerPipelineParameters.

  • Amazon SQS Fair et files d'attente FIFO

    Permet SqsParametersde spécifier le groupe de messages à utiliser comme cible.

  • Run Command de Systems Manager

    RunCommandParametersÀ utiliser pour spécifier le document SSM et les instances cibles. Pour plus d'informations, voir Systems Manager Run Command as a target.

Note

EventBridge ne prend pas en charge toutes les syntaxes JSON Path et ne l'évalue pas lors de l'exécution. La syntaxe prise en charge inclut :

  • notation par points (par exemple, $.detail)

  • tirets

  • traits de soulignement

  • caractères alphanumériques

  • index de tableau

  • caractères génériques (*)

  • barres obliques vers l'avant

Paramètres de chemin dynamiques

Les paramètres de chemin dynamiques vous permettent d'utiliser la syntaxe de chemin JSON pour référencer les données d'événements au moment de l'exécution au lieu de valeurs statiques.

Vous pouvez utiliser une syntaxe de chemin JSON dynamique avec des paramètres cibles pour spécifier des chemins JSON au lieu de valeurs statiques (par exemple,$.detail.state).

Exigences

La valeur entière doit être un chemin JSON, pas seulement une partie de celui-ci. Par exemple :

  • ✓ Correct : RedshiftParameters.Sql peut être $.detail.state

  • ✗ Incorrect : RedshiftParameters.Sql ne peut pas être "SELECT * FROM $.detail.state"

EventBridge remplace ces chemins lors de l'exécution par des données provenant de la charge utile de l'événement sur le chemin spécifié.

Limitations

Les paramètres de chemin dynamique ne peuvent pas faire référence à des valeurs nouvelles ou transformées à partir de la transformation d'entrée. La syntaxe du chemin JSON est identique à celle de la transformation d'entrée. Pour plus d'informations, consultez Amazon EventBridge Input Transformation.

Paramètres pris en charge

Vous pouvez utiliser une syntaxe dynamique sur tous les champs de chaîne autres que les champs enum des paramètres suivants :

Permissions

Pour effectuer des appels d'API sur les ressources que vous possédez, EventBridge vous devez disposer des autorisations appropriées. Spécifiez un rôle d'exécution IAM à l'aide de la EventBridge console ou en définissant le RoleARN paramètre dans PutTargets.

Par exemple, la politique suivante définit l'autorisation d'envoyer des messages à une file d'attente Amazon SQS :

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

Et la politique de confiance suivante permet EventBridge d'assumer le rôle :

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

Vous pouvez invoquer un point de terminaison API Gateway avec une autorisation IAM configurée, mais le rôle est facultatif si vous n’avez pas configuré d’autorisation. Pour de plus amples informations, veuillez consulter Amazon EventBridge et Gestion des identités et des accès AWS.

Si un autre compte se trouve dans la même région et vous a accordé l’autorisation, vous pouvez envoyer des événements à ce compte.

Pour de plus amples informations, veuillez consulter Envoi et réception d'événements entre AWS comptes sur Amazon EventBridge.

Si votre cible, telle qu'une file d'attente Amazon SQS, utilise le chiffrement AWS Key Management Service (AWS KMS), vous devez inclure la section suivante dans votre politique relative aux clés KMS :

{ "Sid": "Allow EventBridge to use the key", "Effect": "Allow", "Principal": { "Service": "events.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

AWS Batch files d'attente de tâches en tant que cibles

Certains paramètres AWS Batch submitJob peuvent être configurés via BatchParameters.

Les autres paramètres peuvent être spécifiées dans la charge utile de l’événement. Si la charge utile de l'événement (transmise par ou via InputTransformers) contient les clés suivantes, elles sont mappées aux paramètres de submitJob demande :

  • ContainerOverrides: containerOverrides

    Note

    Inclut uniquement command, environment, memory et vcpus

  • DependsOn: dependsOn

    Note

    Inclut uniquement jobId

  • Parameters: parameters

CloudWatch Enregistre les groupes en tant que cibles

Si vous n'utilisez pas un InputTransformeravec une cible CloudWatch Logs, la charge utile de l'événement est utilisée comme message de journal et la source de l'événement comme horodatage. Si vous utilisez un InputTransformer, le modèle doit être :

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

EventBridge regroupe les entrées envoyées à un flux de journal ; par conséquent, EventBridge peut transmettre un ou plusieurs événements à un flux de journal, en fonction du trafic.

CodeBuild projets en tant que cibles

EventBridge prend en charge les versions standard et par lots en tant que cibles.

Si vous utilisez un transformateur d'entrée pour façonner l'événement source afin qu'il corresponde à la StartBuildRequeststructure avant qu'il ne soit transmis à une CodeBuild cible, les paramètres seront mappés 1 à 1 et transmis par défaut àcodeBuild.StartBuild.

Pour transmettre les paramètres à la codeBuild.StartBuildBatch place, transformez l'événement source pour qu'il corresponde à la StartBuildBatchRequeststructure et ajoutez la key/value paire suivante à la racine de l'événement transformé :

"buildType": "BATCH"

Tâches Amazon ECS en tant que cibles

Si vous façonnez l'événement d'entrée sur une cible afin qu'elle corresponde à la RunTask TaskOverridestructure Amazon ECS, les paramètres seront mappés 1 à 1 et transmis à. InputTransformersecs.RunTask

Plans de réponse du gestionnaire d'incidents en tant que cibles

Si l'événement correspondant provient d' CloudWatch alarmes, les détails du changement d'état de l'alarme sont renseignés dans les détails du déclencheur de l' StartIncidentRequest appel à Incident Manager.

Systems Manager Run Command en tant que cible

Lorsque vous spécifiez Systems Manager Run Command comme cible, EventBridge appelle l'SendCommandAPI en votre nom. Configurez la cible à l'aide RunCommandParametersde ce qui indique le document SSM à exécuter et les instances ou balises cibles.

RunCommandParameterscontient les champs suivants :

  • RunCommandTargets— (Obligatoire) Liste de paires clé-valeur qui spécifient les instances cibles. Utilisez Key set to InstanceIds avec une liste d'instances IDs, ou Key set to tag:tag-name with tag values pour cibler les instances par tag. Vous pouvez spécifier entre 1 et 5 cibles de commande d'exécution.

Pour spécifier le document SSM à exécuter et lui transmettre des paramètres, utilisez le Input champ de l'Targetobjet. La Input valeur doit être un objet JSON ayant la structure suivante :

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

Où :

  • DocumentName— Le nom ou l'ARN du document SSM à exécuter.

  • DocumentVersion— (Facultatif) La version du document. En cas d'omission, la version par défaut est utilisée.

  • Parameters— (Facultatif) Une carte des noms de paramètres aux tableaux de valeurs, correspondant aux paramètres définis dans le document SSM.

Par exemple, la AWS CLI commande suivante crée une règle qui exécute le AWS-RunShellScript document sur une instance spécifique lorsqu'un EventBridge événement correspond :

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"] }] } }]'
Note

Le Input champ de l'Targetobjet est utilisé pour transmettre le nom et les paramètres du document à Systems Manager Run Command. Ceci est différent de InputTransformer, qui transforme la charge utile de l'événement. Lorsque vous utilisez Systems Manager Run Command comme cible, définissez les paramètres du document Input et spécifiez les instances cibles dansRunCommandParameters.

files d'attente Amazon SQS en tant que cibles

EventBridge ne prend pas en charge l'utilisation de files d'attente Amazon SQS chiffrées avec un. Clé détenue par AWS Cela inclut les cibles, ainsi que les files d'attente Amazon SQS spécifiées comme des files d'attente contenant des lettres mortes pour les cibles. Pour plus d'informations Clés détenues par AWS, consultez la section sur les clés AWS détenues dans le Guide du AWS Key Management Service développeur.