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. Car
PutRawEvents, les données sont la charge utile que vous avez envoyée. EnPutEventseffet, les données sont l' EventBridge enveloppe et les vôtresDetailsont imbriquées sous ladetailclé.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érialiseapplication/avroet organiseapplication/protobufdes événements en JSON, et unDATAfiltre examine ce JSON comme n'importe quel événement JSON. Unapplication/octet-streamévénement ne contient aucune donnée pouvant être lue par un filtre. Par conséquent, un abonné doté d'unDATAfiltre ne correspond jamais à un tel filtre ;METADATAetSYSTEM_METADATAles filtres fonctionnent toujours sur celui-ci. METADATA-
Examine les paires clé-valeur que l'éditeur a définies.
MetadataPutRawEventsMETADATAles 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$orsont pas pris en charge. Pour utiliser ces opérateurs, filtrez surDATAouSYSTEM_METADATA. UnPutEventsévénement ne possède aucune métadonnée d'éditeur, de sorte qu'unMETADATAfiltre 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 leaws:préfixe.
| Champ | Description | Présent le |
|---|---|---|
ContentType | Type de contenu des données d'événement | Chaque événement |
DeduplicationId | L'identifiant de déduplication | Chaque événement |
EventGroupId | Le groupe événementiel | Chaque événement |
aws:EventId | L'identifiant EventBridge attribué | Chaque événement |
aws:IngestionTime | Quand l'événement a EventBridge été reçu | Chaque événement |
aws:SequenceNumber | Le numéro de séquence EventBridge attribué | Chaque événement |
aws:DeliveryType | LIVE ou REPLAY | Chaque événement organisé |
aws:SchemaId | L'identifiant du schéma issu du registre : un UUID de version pour Glue, un entier pour Confluent | Événements Avro et Protobuf |
aws:RegistryType | Glue ou Confluent | Événements Avro et Protobuf |
aws:Source | La source de l'événement | PutEventsévénements destinés aux partenaires, aux AWS services et au SaaS |
aws:DetailType | Type de détail de l'événement | PutEventsé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 comportantanything-butun 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$orl'utilisation produit plus de 1 000 combinaisons de motifs. Multipliez le nombre d'arguments de chaque$ortableau : 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
DATAmotif peut avoir un tableau à sa racine ;METADATAetSYSTEM_METADATAles 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.