View a markdown version of this page

Ereignisse für einen Abonnenten filtern - Amazon EventBridge

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 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. DATAFilter 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 METADATAFilter entsprechen nur exakten Werten: Jeder Wert im Muster muss ein JSON-Array mit exakten Werten sein, und Operatoren wie prefix numericexists, und $or werden nicht unterstützt. Um diese Operatoren zu verwenden, filtern Sie nach DATA oderSYSTEM_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_METADATAFilter unterstützen alle Operatoren für Ereignismuster mit Ausnahme von Platzhaltern. Felder, die EventBridge generiert werden, tragen das aws: Präfix.

FeldDescriptionAnwesend am
ContentTypeDer Inhaltstyp der EventdatenJedes Ereignis
DeduplicationIdDie Deduplizierungs-IDJedes Ereignis
EventGroupIdDie EventgruppeJede Veranstaltung
aws:EventIdDie EventBridge zugewiesene KennungJedes Ereignis
aws:IngestionTimeWann EventBridge habe ich die Veranstaltung erhaltenJede Veranstaltung
aws:SequenceNumberDie EventBridge zugewiesene SequenznummerJedes Ereignis
aws:DeliveryTypeLIVE oder REPLAYJedes ausgeführte Ereignis
aws:SchemaIdDie Schema-ID aus der Registrierung: eine Versions-UUID für Glue, eine Ganzzahl für ConfluentAvro- und Protobuf-Ereignisse
aws:RegistryTypeGlue oder ConfluentAvro- und Protobuf-Ereignisse
aws:SourceDie Quelle des EreignissesPutEvents, AWS Service- und SaaS-Partnerveranstaltungen
aws:DetailTypeDer Detailtyp des EreignissesPutEvents, 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 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; 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.