

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é
<a name="eb-custom-bus-filtering"></a>

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 avec`PutEvents`. Cette page décrit le modèle de filtre ; pour les opérateurs de modèle, voir[Modèles d' EventBridge événements Amazon](eb-event-patterns.md). Les filtres d'abonnés ne prennent pas en charge la mise en correspondance des caractères génériques.

## Comment fonctionne le filtrage
<a name="eb-custom-bus-filtering-how"></a>

Chaque filtre comporte deux parties : a`Scope`, qui est la partie de l'événement que le filtre examine (`DATA``METADATA`, ou `SYSTEM_METADATA` ; voir[Structure de l'événement : données, métadonnées et métadonnées du système](eb-custom-bus-addressing.md)), et a`Pattern`, 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
<a name="eb-custom-bus-filtering-scopes"></a>

`DATA`  
Examine les données de l'événement. Car`PutRawEvents`, 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é. `DATA`les 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` `METADATA`les filtres correspondent uniquement à des valeurs exactes : chaque valeur du modèle doit être un tableau JSON de valeurs exactes, et les opérateurs tels que`prefix`, `numeric``exists`, et ne `$or` sont pas pris en charge. Pour utiliser ces opérateurs, filtrez sur `DATA` ou`SYSTEM_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_METADATA`les 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.


| 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` et`aws:DetailType`. EventBridge écrit ces champs et aucun appel de publication ne peut définir une source commençant par`aws.`, 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é](eb-custom-bus-event-sources.md).

## Exemple : filtrez un événement publié avec PutRawEvents
<a name="eb-custom-bus-filtering-raw-example"></a>

`PutRawEvents`publie 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
<a name="eb-custom-bus-filtering-putevents-example"></a>

`PutEvents`publie un événement dans l' EventBridge enveloppe, construite à partir des éléments`Source`,, `DetailType` `Resources``Time`, et de l'entrée`Detail`. Un `DATA` filtre correspond à cette enveloppe, le vôtre étant `Detail` imbriqué en dessous`detail`. L'événement `ContentType` est`application/eventbridge+json`, `aws:Source` et `aws:DetailType` vient du et de l'entrée`DetailType`, `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 est`com.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
<a name="eb-custom-bus-filtering-event-source-example"></a>

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
<a name="eb-custom-bus-filtering-limits"></a>
+ **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'`wildcard`opé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 ; voir[Mettre à jour, suspendre et reprendre un abonné](eb-custom-bus-update.md).

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.