View a markdown version of this page

Objectifs des bus événementiels 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.

Objectifs des bus événementiels 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, il EventBridge faut l'autorisation d'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 de 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 de la charge utile de l'événement à la cible, mais traitent l'événement comme un déclencheur permettant d'invoquer une API spécifique. EventBridge utilise les paramètres Target 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 de données Amazon Redshift

    Utilisez RedshiftDataParameters.

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

    Utilisez SageMakerPipelineParameters.

  • Foire Amazon SQS et files d'attente FIFO

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

  • Run Command de Systems Manager

    Permet RunCommandParameters de spécifier le document SSM et les instances cibles. Pour plus d'informations, voir Systems Manager Exécuter la commande en tant que cible.

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 la syntaxe de chemin JSON dynamique avec les 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, et 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 la même que 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 pour tous les champs de chaîne, autres que ceux d'énumération, de ces paramètres :

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 ce 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 Envoyer et recevoir des é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 pour submitJob demander les paramètres :

  • 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 de cible InputTransformer with a CloudWatch Logs, la charge utile de l'événement est utilisée comme message du 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 journaux ; par conséquent, EventBridge peut transmettre un ou plusieurs événements à un flux de journaux, 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 mettre en forme l'événement source afin qu'il corresponde à la StartBuildRequest structure 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 à codeBuild.StartBuildBatch instead, transformez l'événement source pour qu'il corresponde à la StartBuildBatchRequest structure et ajoutez la key/value paire suivante à la racine de l'événement transformé :

"buildType": "BATCH"

Les tâches Amazon ECS en tant que cibles

Si vous l'utilisez InputTransformers pour transformer l'événement en entrée en une cible correspondant à la RunTask TaskOverride structure Amazon ECS, les paramètres seront mappés 1 à 1 et transmis à. ecs.RunTask

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

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

Systems Manager exécute la commande 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 de RunCommandParameters, qui spécifie le document SSM à exécuter et les instances ou balises cibles.

RunCommandParameterscontient les champs suivants :

  • RunCommandTargets— (Obligatoire) Une liste de paires clé-valeur qui spécifient les instances cibles. Utilisez Key set to InstanceIds avec une liste d'ID d'instance, ou Key set to tag:tag-name avec des valeurs de balise pour cibler les instances par balise. 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 dont la structure est la 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) Version du document. En cas d'omission, la version par défaut est utilisée.

  • Parameters— (Facultatif) Une carte des noms de paramètres vers des 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 à la commande d'exécution de Systems Manager. Ceci est différent de InputTransformer, qui transforme la charge utile de l'événement. Lorsque vous utilisez la commande d'exécution de Systems Manager comme cible, définissez les paramètres du document Input et spécifiez les instances cibles dansRunCommandParameters.

Les 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 files d'attente avec lettre morte pour les cibles. Pour plus d'informations Clés détenues par AWS, consultez la section relative AWS aux clés détenues dans le Guide du AWS Key Management Service développeur.