View a markdown version of this page

Filtrer les événements pour un abonné - 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.

Filtrer les événements pour un abonné

Un filtre sélectionne les événements que reçoit un abonné. Attachez a FilterConfiguration à l'abonné à l'aide d'un ou de plusieurs filtres, chacun désignant a Scope et a Pattern dans la syntaxe du modèle d' EventBridge événement. Par exemple, un DATA filtre avec le modèle ne {"detail":{"amount":[{"numeric":[">",500]}]}} livre que les commandes de plus de 500 publiées avecPutEvents. Cette page décrit le modèle de filtre ; pour les opérateurs de modèle, voirModèles d' EventBridge événements Amazon. Les filtres d'abonnés ne prennent pas en charge la mise en correspondance des caractères génériques.

Comment fonctionne le filtrage

Chaque filtre comporte deux parties : aScope, qui est la partie de l'événement que le filtre examine (DATAMETADATA, ou SYSTEM_METADATA ; voirStructure de l'événement : données, métadonnées et métadonnées du système), et aPattern, un modèle d'événement fourni sous forme de chaîne JSON. EventBridge combine les filtres dans une configuration avec ET : un événement doit correspondre à chaque filtre avant que l'abonné ne le reçoive. Un abonné qui n'a pas FilterConfiguration reçu tous les événements.

Les trois scopes

DATA

Examine les données de l'événement. CarPutRawEvents, les données sont la charge utile que vous avez envoyée. En PutEvents effet, les données sont l' EventBridge enveloppe et les vôtres Detail sont imbriquées sous la detail clé. DATAles filtres prennent en charge tous les opérateurs de modèles d'événements, à l'exception des caractères génériques. EventBridge désérialise application/avro et organise application/protobuf des événements en JSON, et un DATA filtre examine ce JSON comme n'importe quel événement JSON. Un application/octet-stream événement ne contient aucune donnée pouvant être lue par un filtre. Par conséquent, un abonné doté d'un DATA filtre ne correspond jamais à un tel filtre ; METADATA et SYSTEM_METADATA les filtres fonctionnent toujours sur celui-ci.

METADATA

Examine les paires clé-valeur que l'éditeur a définies. Metadata PutRawEvents METADATAles filtres correspondent uniquement à des valeurs exactes : chaque valeur du modèle doit être un tableau JSON de valeurs exactes, et les opérateurs tels queprefix, numericexists, et ne $or sont pas pris en charge. Pour utiliser ces opérateurs, filtrez sur DATA ouSYSTEM_METADATA. Un PutEvents événement ne possède aucune métadonnée d'éditeur, de sorte qu'un METADATA filtre ne correspond jamais à une seule.

SYSTEM_METADATA

Examine les EventBridge champs définis pour l'événement, répertoriés dans le tableau suivant. SYSTEM_METADATAles filtres prennent en charge tous les opérateurs de modèles d'événements, à l'exception des caractères génériques. Les champs EventBridge générés portent le aws: préfixe.

ChampDescriptionPrésent le
ContentTypeType de contenu des données d'événementChaque événement
DeduplicationIdL'identifiant de déduplicationChaque événement
EventGroupIdLe groupe événementielChaque événement
aws:EventIdL'identifiant EventBridge attribuéChaque événement
aws:IngestionTimeQuand l'événement a EventBridge été reçuChaque événement
aws:SequenceNumberLe numéro de séquence EventBridge attribuéChaque événement
aws:DeliveryTypeLIVE ou REPLAYChaque événement organisé
aws:SchemaIdL'identifiant du schéma issu du registre : un UUID de version pour Glue, un entier pour ConfluentÉvénements Avro et Protobuf
aws:RegistryTypeGlue ou ConfluentÉvénements Avro et Protobuf
aws:SourceLa source de l'événementPutEventsévénements destinés aux partenaires, aux AWS services et au SaaS
aws:DetailTypeType de détail de l'événementPutEventsévénements destinés aux partenaires, aux AWS services et au SaaS
Note

Pour filtrer les événements AWS de service ou les événements des partenaires SaaS, utilisez aws:Source etaws:DetailType. EventBridge écrit ces champs et aucun appel de publication ne peut définir une source commençant paraws., afin d'identifier l'origine vérifiée de l'événement. N'utilisez pas les detail-type champs source et des données d'événement à cette fin ; n'importe quel éditeur peut les écrire. Consultez Sources d'événements pour un bus événementiel personnalisé.

Exemple : filtrez un événement publié avec PutRawEvents

PutRawEventspublie une charge utile avec un type de contenu. Un DATA filtre correspond directement à la charge utile et un METADATA filtre correspond à la carte de métadonnées de l'éditeur. La configuration suivante comporte un filtre par étendue ; l'abonné reçoit un événement uniquement lorsque les trois correspondent : la charge utile amount est supérieure à 500, la clé de métadonnées region est EU et le type de contenu est JSON.

{ "Filters": [ { "Scope": "DATA", "Pattern": "{\"amount\":[{\"numeric\":[\">\",500]}]}" }, { "Scope": "METADATA", "Pattern": "{\"region\":[\"EU\"]}" }, { "Scope": "SYSTEM_METADATA", "Pattern": "{\"ContentType\":[\"application/json\"]}" } ] }

Exemple : filtrez un événement publié avec PutEvents

PutEventspublie un événement dans l' EventBridge enveloppe, construite à partir des élémentsSource,, DetailType ResourcesTime, et de l'entréeDetail. Un DATA filtre correspond à cette enveloppe, le vôtre étant Detail imbriqué en dessousdetail. L'événement ContentType estapplication/eventbridge+json, aws:Source et aws:DetailType vient du et de l'entréeDetailType, Source et l'enveloppe expose également source et detail-type dans la DATA portée. La configuration suivante correspond lorsque le amount détail est supérieur à 500 et que la source estcom.myapp.storage.

{ "Filters": [ { "Scope": "DATA", "Pattern": "{\"detail\":{\"amount\":[{\"numeric\":[\">\",500]}]}}" }, { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"com.myapp.storage\"]}" } ] }

Exemple : filtrer les événements à partir d'une source d'événements

Les événements ingérés par une source d'événements arrivent dans l' EventBridge enveloppe, avec le service ou le partenaire d'origine. aws:Source Pour ne recevoir que les événements créés par des objets Amazon S3 pour un compartiment, faites correspondre le service SYSTEM_METADATA et le compartiment. DATA Pour un partenaire, faites correspondre le nom de la source de l'événement partenaire, par exemple avec un « prefix activé aws.partner/example.com ».

{ "Filters": [ { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" }, { "Scope": "DATA", "Pattern": "{\"detail-type\":[\"Object Created\"],\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" } ] }

Comportement et limites

  • Combinaison ET  : un événement doit correspondre à tous les filtres de la configuration.

  • Aucun filtre  : un abonné sans configuration de filtre reçoit tous les événements.

  • Un filtre par oscilloscope : une configuration contient au plus un filtre pour chaque oscilloscope, soit au maximum trois filtres. EventBridge rejette une configuration avec deux filtres de même portée.

  • Caractères génériques  : l'wildcardopérateur et ceux comportant anything-but un caractère générique sont rejetés, avec le message Le modèle de filtre ne doit pas contenir de correspondances de caractères génériques (caractère générique, tout sauf un caractère générique).

  • Combinaisons de motifs avec $or  : EventBridge rejette un filtre dont $or l'utilisation produit plus de 1 000 combinaisons de motifs. Multipliez le nombre d'arguments de chaque $or tableau : un tableau de trois donne trois combinaisons, un deuxième tableau de deux en donne six.

  • Taille  : tous les filtres d'une configuration partagent une limite de 4 096 octets sur les trois étendues.

  • Forme du motif  : un DATA motif peut avoir un tableau à sa racine ; METADATA et SYSTEM_METADATA les modèles doivent être des objets JSON. Un modèle JSON non valide est rejeté lorsque vous créez ou mettez à jour l'abonné.

  • Changements  : les filtres d'un abonné peuvent changer 24 fois en 24 heures consécutives ; voirMettre à jour, suspendre et reprendre un abonné.

Un motif écrit pour la mauvaise forme n'échoue pas ; il ne correspond à rien. Avant de compter sur un abonné, publiez un événement qui devrait correspondre et un autre qui ne devrait pas correspondre, et vérifiez les deux au niveau de la cible.