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
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 wurdenPutEvents. Auf dieser Seite wird das Filtermodell beschrieben; Informationen zu den Musteroperatoren finden Sie unterEventBridge Amazon-Event-Muster. Abonnentenfilter unterstützen keinen Platzhalterabgleich.
Wie funktioniert das Filtern
Jeder Filter besteht aus zwei Teilen: aScope, das ist der Teil des Ereignisses, das der Filter untersucht (DATAMETADATA, oderSYSTEM_METADATA; sieheEventstruktur: Daten, Metadaten und Systemmetadaten), und a, ein EreignismusterPattern, 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
DATA-
Untersucht die Ereignisdaten. Denn
PutRawEventsdie Daten sind die Nutzdaten, die Sie gesendet haben. DennPutEventsdie Daten sind der EventBridge Umschlag, und IhrDetailist unter demdetailSchlüssel verschachtelt.DATAFilter unterstützen alle Operatoren für Ereignismuster mit Ausnahme von Platzhaltern. EventBridge deserialisiertapplication/protobufEreignisse nach JSON,application/avround einDATAFilter untersucht dieses JSON wie jedes JSON-Ereignis. Einapplication/octet-streamEreignis enthält keine Daten, die ein Filter lesen kann, sodass ein Abonnent mit einemDATAFilter nie mit einem Filter übereinstimmt;METADATASYSTEM_METADATAFilter funktionieren trotzdem darauf. METADATA-
Untersucht die Schlüssel-Wert-Paare, die der Herausgeber eingegeben hat.
MetadataPutRawEventsMETADATAFilter entsprechen nur exakten Werten: Jeder Wert im Muster muss ein JSON-Array mit exakten Werten sein, und Operatoren wieprefixnumericexists, und$orwerden nicht unterstützt. Um diese Operatoren zu verwenden, filtern Sie nachDATAoderSYSTEM_METADATA. EinPutEventsEreignis hat keine Publisher-Metadaten, daher entspricht einMETADATAFilter nie einem. SYSTEM_METADATA-
Untersucht die in der folgenden Tabelle aufgeführten EventBridge Feldgruppen für das Ereignis.
SYSTEM_METADATAFilter unterstützen alle Operatoren für Ereignismuster mit Ausnahme von Platzhaltern. Felder, die EventBridge generiert werden, tragen dasaws: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 filternaws:DetailType. EventBridge schreibt diese Felder und kein Veröffentlichungsaufruf kann eine Quelle angeben, die mit beginntaws., 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.
Beispiel: Filtern Sie ein Ereignis, das mit veröffentlicht wurde PutRawEvents
PutRawEventsverö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
PutEventsveröffentlicht ein Ereignis im EventBridge Envelope, das aus den EinträgenSource, DetailType ResourcesTime, und erstellt wirdDetail. 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 EintragsDetailType, 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
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
-
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
wildcardOperator undanything-butein 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.$orMultiplizieren Sie die Anzahl der Argumente in jedem$orArray: 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
DATAMuster kann ein Array an seiner Wurzel haben;METADATAundSYSTEM_METADATAMuster 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; sieheEinen Abonnenten aktualisieren, pausieren und wieder aufnehmen.
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.