

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Ereignisse für einen Abonnenten filtern
<a name="eb-custom-bus-filtering"></a>

Ein Filter wählt aus, welche Ereignisse ein Abonnent erhält. Ordnen Sie dem Abonnenten einen oder mehrere Filter `FilterConfiguration` zu, wobei jeder Filter A `Scope` und A `Pattern` in der EventBridge Ereignismustersyntax benennt. Ein `DATA` Filter mit dem Muster `{"detail":{"amount":[{"numeric":[">",500]}]}}` liefert beispielsweise nur Bestellungen über 500, die mit veröffentlicht wurden`PutEvents`. Auf dieser Seite wird das Filtermodell beschrieben; Informationen zu den Musteroperatoren finden Sie unter[EventBridge Amazon-Event-Muster](eb-event-patterns.md). Abonnentenfilter unterstützen keinen Platzhalterabgleich.

## Wie funktioniert das Filtern
<a name="eb-custom-bus-filtering-how"></a>

Jeder Filter besteht aus zwei Teilen: a`Scope`, das ist der Teil des Ereignisses, das der Filter untersucht (`DATA``METADATA`, oder`SYSTEM_METADATA`; siehe[Eventstruktur: Daten, Metadaten und Systemmetadaten](eb-custom-bus-addressing.md)), und a, ein Ereignismuster`Pattern`, das als JSON-Zeichenfolge bereitgestellt wird. EventBridge kombiniert die Filter in einer Konfiguration mit UND: Ein Ereignis muss mit jedem Filter übereinstimmen, bevor der Abonnent es erhält. Ein Abonnent ohne `FilterConfiguration` erhält alle Ereignisse.

## Die drei Bereiche
<a name="eb-custom-bus-filtering-scopes"></a>

`DATA`  
Untersucht die Ereignisdaten. Denn `PutRawEvents` die Daten sind die Nutzdaten, die Sie gesendet haben. Denn `PutEvents` die Daten sind der EventBridge Umschlag, und Ihr `Detail` ist unter dem `detail` Schlüssel verschachtelt. `DATA`Filter unterstützen alle Operatoren für Ereignismuster mit Ausnahme von Platzhaltern. EventBridge deserialisiert `application/protobuf` Ereignisse nach JSON, `application/avro` und ein `DATA` Filter untersucht dieses JSON wie jedes JSON-Ereignis. Ein `application/octet-stream` Ereignis enthält keine Daten, die ein Filter lesen kann, sodass ein Abonnent mit einem `DATA` Filter nie mit einem Filter übereinstimmt; `METADATA` `SYSTEM_METADATA` Filter funktionieren trotzdem darauf.

`METADATA`  
Untersucht die Schlüssel-Wert-Paare, die der Herausgeber eingegeben hat. `Metadata` `PutRawEvents` `METADATA`Filter entsprechen nur exakten Werten: Jeder Wert im Muster muss ein JSON-Array mit exakten Werten sein, und Operatoren wie `prefix` `numeric``exists`, und `$or` werden nicht unterstützt. Um diese Operatoren zu verwenden, filtern Sie nach `DATA` oder`SYSTEM_METADATA`. Ein `PutEvents` Ereignis hat keine Publisher-Metadaten, daher entspricht ein `METADATA` Filter nie einem.

`SYSTEM_METADATA`  
Untersucht die in der folgenden Tabelle aufgeführten EventBridge Feldgruppen für das Ereignis. `SYSTEM_METADATA`Filter unterstützen alle Operatoren für Ereignismuster mit Ausnahme von Platzhaltern. Felder, die EventBridge generiert werden, tragen das `aws:` Präfix.


| Feld | Description | Anwesend am | 
| --- | --- | --- | 
| ContentType | Der Inhaltstyp der Eventdaten | Jedes Ereignis | 
| DeduplicationId | Die Deduplizierungs-ID | Jedes Ereignis | 
| EventGroupId | Die Eventgruppe | Jede Veranstaltung | 
| aws:EventId | Die EventBridge zugewiesene Kennung | Jedes Ereignis | 
| aws:IngestionTime | Wann EventBridge habe ich die Veranstaltung erhalten | Jede Veranstaltung | 
| aws:SequenceNumber | Die EventBridge zugewiesene Sequenznummer | Jedes Ereignis | 
| aws:DeliveryType | LIVE oder REPLAY | Jedes ausgeführte Ereignis | 
| aws:SchemaId | Die Schema-ID aus der Registrierung: eine Versions-UUID für Glue, eine Ganzzahl für Confluent | Avro- und Protobuf-Ereignisse | 
| aws:RegistryType | Glue oder Confluent | Avro- und Protobuf-Ereignisse | 
| aws:Source | Die Quelle des Ereignisses | PutEvents, AWS Service- und SaaS-Partnerveranstaltungen | 
| aws:DetailType | Der Detailtyp des Ereignisses | PutEvents, AWS Service- und SaaS-Partnerveranstaltungen | 

**Anmerkung**  
Verwenden Sie und, um nach AWS Serviceereignissen oder SaaS-Partnerereignissen `aws:Source` zu filtern`aws:DetailType`. EventBridge schreibt diese Felder und kein Veröffentlichungsaufruf kann eine Quelle angeben, die mit beginnt`aws.`, sodass sie den verifizierten Ursprung des Ereignisses identifizieren. Verwenden Sie die `detail-type` Felder `source` und in den Event-Daten nicht für diesen Zweck; jeder Publisher kann sie schreiben. Siehe [Ereignisquellen für einen benutzerdefinierten Event-Bus](eb-custom-bus-event-sources.md).

## Beispiel: Filtern Sie ein Ereignis, das mit veröffentlicht wurde PutRawEvents
<a name="eb-custom-bus-filtering-raw-example"></a>

`PutRawEvents`veröffentlicht eine Nutzlast mit einem Inhaltstyp. Ein `DATA` Filter entspricht direkt der Payload, und ein `METADATA` Filter entspricht der Metadatenkarte des Herausgebers. Die folgende Konfiguration hat einen Filter pro Bereich. Der Abonnent erhält nur dann ein Ereignis, wenn alle drei übereinstimmen: Die Payload hat mehr als 500, der Metadatenschlüssel `region` ist `EU` und der Inhaltstyp ist JSON. `amount`

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

## Beispiel: Filtern Sie ein Ereignis, das mit veröffentlicht wurde PutEvents
<a name="eb-custom-bus-filtering-putevents-example"></a>

`PutEvents`veröffentlicht ein Ereignis im EventBridge Envelope, das aus den Einträgen`Source`, `DetailType` `Resources``Time`, und erstellt wird`Detail`. Ein `DATA` Filter entspricht diesem Envelope, unter `detail` dem sich Ihr `Detail` Envelope befindet. Das Ereignis `ContentType` ist `application/eventbridge+json` `aws:Source` und `aws:DetailType` kommt aus dem und des Eintrags`DetailType`, `Source` und der Umschlag macht auch `source` und `detail-type` im `DATA` Gültigkeitsbereich sichtbar. Die folgende Konfiguration stimmt überein, wenn der `amount` Wert in der Detailansicht über 500 liegt und die Quelle bereits `com.myapp.storage`

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

## Beispiel: Ereignisse aus einer Ereignisquelle filtern
<a name="eb-custom-bus-filtering-event-source-example"></a>

Ereignisse, die von einer Ereignisquelle aufgenommen werden, werden zusammen mit dem ursprünglichen Dienst oder Partner im EventBridge `aws:Source` Envelope eingetroffen. Um nur von Amazon S3-Objekten erstellte Ereignisse für einen Bucket zu empfangen, ordnen Sie den Service `SYSTEM_METADATA` und den Bucket zu. `DATA` Ordnen Sie für einen Partner den Namen der Partnerereignisquelle zu, z. B. mit einem `prefix` „on“. `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\"]}}}" }
    ]
}
```

## Verhalten und Grenzen
<a name="eb-custom-bus-filtering-limits"></a>
+ **UND-Kombination**: Ein Ereignis muss mit jedem Filter in der Konfiguration übereinstimmen.
+ **Kein Filter**: Ein Abonnent ohne Filterkonfiguration erhält alle Ereignisse.
+ **Ein Filter pro Bereich**: Eine Konfiguration enthält maximal einen Filter für jeden Bereich, also maximal drei Filter. EventBridge lehnt eine Konfiguration mit zwei Filtern desselben Bereichs ab.
+ **Platzhalter**: Der `wildcard` Operator und `anything-but` ein Platzhalter werden zurückgewiesen, bei der Meldung darf das * Filtermuster keine Platzhalter-Matcher enthalten (Platzhalter, alles außer Platzhalter). *
+ **Musterkombinationen mit `$or`**: EventBridge lehnt einen Filter ab, dessen Verwendung mehr als 1.000 Musterkombinationen ergibt. `$or` Multiplizieren Sie die Anzahl der Argumente in jedem `$or` Array: Ein Array mit drei ergibt drei Kombinationen, ein zweites Array mit zwei ergibt sechs.
+ **Größe**: Alle Filter in einer Konfiguration teilen sich ein Limit von 4.096 Byte für alle drei Bereiche.
+ **Musterform**: Ein `DATA` Muster kann ein Array an seiner Wurzel haben; `METADATA` und `SYSTEM_METADATA` Muster müssen JSON-Objekte sein. Ein Muster, bei dem es sich nicht um ein gültiges JSON-Muster handelt, wird abgelehnt, wenn Sie den Abonnenten erstellen oder aktualisieren.
+ **Änderungen**: Die Filter eines Abonnenten können innerhalb von 24 Stunden 24 Mal geändert werden; siehe[Einen Abonnenten aktualisieren, pausieren und wieder aufnehmen](eb-custom-bus-update.md).

Ein für die falsche Form geschriebenes Muster versagt nicht; es passt zu nichts. Bevor Sie sich auf einen Abonnenten verlassen, veröffentlichen Sie ein Ereignis, das übereinstimmen sollte, und eines, das nicht passen sollte, und überprüfen Sie beide Ereignisse bei der Zielgruppe.