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 :
Destinations d’API
Les destinations d'API sont des points de terminaison HTTPS que vous pouvez invoquer en tant que cible d'une règle de bus d'événements. Lorsque vous spécifiez une destination d'API comme cible de règle, que vous EventBridge invoquez le point de terminaison HTTPS pour tout événement correspondant au modèle d'événement spécifié dans la règle, puis que vous fournissez les informations relatives à l'événement avec la demande. Pour de plus amples informations, veuillez consulter Destinations d’API.
Bus pour événements
Vous pouvez spécifier d'autres bus d'événements comme cibles pour les règles. Cela inclut les bus événementiels sur le même compte ou sur AWS des comptes différents.
AWS services
Vous pouvez avoir EventBridge envoyé des événements à un certain nombre de ressources de AWS service. Il s’agit des licences suivantes :
-
CodePipeline
-
Appel d’API
CreateSnapshotAmazon EBS -
EC2 Image Builder
-
Appel d'API EC2
RebootInstances -
Appel d'API EC2
StopInstances -
Appel d'API EC2
TerminateInstances -
Flux de diffusion Firehose
-
Flux de travail Glue
-
Modèle d'évaluation Inspector
-
Flux Kinesis
-
Fonction Lambda (ASYNC)
-
Requêtes d’API relatives aux données du cluster Amazon Redshift
-
Requêtes d’API relatives aux données du groupe de travail Amazon Redshift sans serveur
-
SageMaker Pipeline d'IA
-
Rubrique Amazon SNS
-
Machine d’état Step Functions (ASYNC)
-
Systems Manager Automation
-
Responsable des systèmes OpsItem
-
Run Command de Systems Manager
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 leInputTransformer. -
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 leInputTransformer. -
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
SqsParametersde spécifier le groupe de messages à utiliser comme cible. -
Run Command de Systems Manager
Permet
RunCommandParametersde 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.Sqlpeut être$.detail.state -
✗ Incorrect :
RedshiftParameters.Sqlne 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 :
-
HttpParameters(à l’exception des clésHeaderParameters)
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 :
Et la politique de confiance suivante permet EventBridge d'assumer ce rôle :
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: containerOverridesNote
Inclut uniquement command, environment, memory et vcpus
DependsOn: dependsOnNote
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. UtilisezKeyset toInstanceIdsavec une liste d'ID d'instance, ouKeyset totag: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.tag-name
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.