Création de modèles d'événements dans 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.

Création de modèles d'événements dans EventBridge

Pour créer un modèle d’événement, vous spécifiez les champs d’un événement auxquels vous souhaitez que le modèle d’événement corresponde. Spécifiez uniquement les champs que vous utilisez pour la correspondance.

Par exemple, l'exemple de modèle d'événement suivant ne fournit des valeurs que pour trois champs : les champs de niveau supérieur "source" et"detail-type", et le "state" champ situé dans le champ "detail" d'objet. EventBridgeignore tous les autres champs de l'événement lors de l'application de la règle.

{ "source": ["aws.ec2"], "detail-type": ["EC2 Instance State-change Notification"], "detail": { "state": ["terminated"] } }

Pour qu’un modèle d’événement corresponde à un événement, cet événement doit contenir tous les noms de champs figurant dans le modèle d’événement. Les noms de champs doivent également apparaître dans l’événement avec la même structure imbriquée.

Lorsque vous écrivez des modèles d'événements correspondant à des événements, vous pouvez utiliser la test-event-pattern CLI commande TestEventPattern API ou pour vérifier que votre modèle correspond aux événements corrects. Pour plus d'informations, consultez TestEventPattern.

Correspondance de valeurs d’événements

Dans un modèle d'événement, la valeur à mettre en correspondance se trouve dans un JSON tableau, entouré de crochets (« [», «] ») afin que vous puissiez fournir plusieurs valeurs. Par exemple, pour faire correspondre des événements provenant d'Amazon EC2 ou d'Amazon AWS Fargate, vous pouvez utiliser le modèle suivant, qui correspond aux événements dont la valeur du "source" champ est soit "aws.ec2" ou"aws.fargate".

{ "source": ["aws.ec2", "aws.fargate"] }

Pour plus d’informations, consultez Correspondance sur plusieurs valeurs de champs.

Utilisation d'opérateurs de comparaison dans les modèles EventBridge d'événements Amazon

Amazon EventBridge prend en charge le filtrage déclaratif du contenu à l'aide de modèles d'événements. Grâce au filtrage de contenu, vous pouvez écrire des modèles d’événements complexes qui ne correspondent à des événements que sous des conditions très spécifiques. Par exemple, vous pouvez créer un modèle d’événement correspondant à un événement lorsque :

  • Un champ de l’événement se situe dans une plage numérique spécifique.

  • L’événement provient d’une adresse IP spécifique.

  • Aucun champ spécifique n'existe dans l'événementJSON.

Pour plus d’informations, consultez Opérateurs de comparaison.

Considérations lors de la création de modèles d’événements

Voici certains éléments à prendre en compte lors de la construction de vos modèles d’événements :

  • EventBridge ignore les champs de l'événement qui ne sont pas inclus dans le modèle d'événement. En conséquence, le caractère générique "*": "*" est ajouté pour les champs qui n’apparaissent pas dans le modèle d’événements.

  • Les valeurs auxquelles les modèles d'événements correspondent sont conformes JSON aux règles. Vous pouvez inclure des chaînes entre guillemets ("), des nombres et les mots-clés true, false, et null.

  • Pour les chaînes, EventBridge utilise une character-by-character correspondance exacte sans pliage des boîtiers ni aucune autre normalisation des chaînes.

  • Pour les nombres, EventBridge utilise une représentation sous forme de chaîne. Par exemple, 300, 300,0 et 3.0e2 ne sont pas considérés égaux.

  • Si plusieurs modèles sont spécifiés pour le même JSON champ, utilise EventBridge uniquement le dernier.

  • Sachez que lorsque vous EventBridge compilez des modèles d'événements à utiliser, il utilise un point (.) comme caractère de jointure.

    Cela signifie que les modèles d'événements suivants EventBridge seront traités comme identiques :

    ## has no dots in keys { "detail" : { "state": { "status": [ "running" ] } } } ## has dots in keys { "detail" : { "state.status": [ "running" ] } }

    Et que les deux modèles d’événements correspondront aux deux événements suivants :

    ## has no dots in keys { "detail" : { "state": { "status": "running" } } } ## has dots in keys { "detail" : { "state.status": "running" } }
    Note

    Cela décrit EventBridge le comportement actuel et ne doit pas être invoqué pour ne pas le modifier.

  • Les modèles d’événements contenant des champs en double ne sont pas valides. Si un modèle contient des champs dupliqués, EventBridge seule la valeur finale du champ est prise en compte.

    Par exemple, les modèles d’événements suivants correspondront au même événement :

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventSource": ["sns.amazonaws.com"] } }

    Et EventBridge traite les deux événements suivants comme identiques :

    ## has duplicate keys { "source": ["aws.s3"], "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["s3.amazonaws.com"], "eventSource": ["sns.amazonaws.com"] } ] } ## has unique keys { "source": ["aws.sns"], "detail-type": ["AWS API Call via CloudTrail"], "detail": [ { "eventSource": ["sns.amazonaws.com"] } ] }
    Note

    Cela décrit EventBridge le comportement actuel et ne doit pas être invoqué pour ne pas le modifier.