View a markdown version of this page

Eventstruktur: Daten, Metadaten und Systemmetadaten - 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.

Eventstruktur: Daten, Metadaten und Systemmetadaten

Filter, Transformatoren und Zielparameter teilen sich ein Adressierungsmodell. EventBridge liefert jedes Ereignis unter drei Namen auf oberster Ebene aus: Data enthält die Nutzlast, Metadata enthält die Schlüssel, die Sie angegeben habenPutRawEvents, und SystemMetadata enthält die Felder, die zugewiesen werden. EventBridge Wo sich Ihre eigenen Felder befinden, Data hängt von der Veröffentlichungs-API ab. Beide APIs erzeugen dieselbe Art von Ereignis und EventBridge filtern und transformieren beide auf die gleiche Weise. Der Unterschied besteht nur darin, was sich darin Data befindet.

Teil Veröffentlicht mit PutRawEvents Veröffentlicht mit PutEvents
Data Deine Payload, genau so, wie sie gesendet wurde Ein Umschlag mitsource, detail-typetime, und anderen Feldern. Ihre Nutzlast hat den Wert von. detail
Metadata Ihre Metadaten-Schlüssel Nicht vorhanden
SystemMetadata Felder, die zugewiesen wurden von EventBridge Felder, die zugewiesen wurden von EventBridge

Ein JSONata-Ausdruck sieht das Ereignis als. $events Dieselbe Bestell-ID befindet sich für jede API in einem anderen Pfad.

Veröffentlicht mitPutRawEvents:

$events.Data.orderId

Veröffentlicht mitPutEvents:

$events.Data.detail.orderId

Derselbe Unterschied gilt für einen Filter mit einem Gültigkeitsbereich vonDATA. Das Muster wird gegen den Inhalt von geschriebenData.

Veröffentlicht mitPutRawEvents:

{ "total": [ { "numeric": [ ">", 500 ] } ] }

Veröffentlicht mitPutEvents:

{ "detail": { "total": [ { "numeric": [ ">", 500 ] } ] } }
Wichtig

Ein Ausdruck oder ein Muster, das für die falsche Form geschrieben wurde, schlägt nicht fehl. Es wird zu nichts aufgelöst, der Filter entspricht keinen Ereignissen und der Transformator erzeugt keine Ausgabe. Ein Abonnent, dessen Filter mit nichts übereinstimmt, sieht genauso aus wie ein Abonnent, der nicht funktioniert. Bevor Sie sich auf einen Abonnenten verlassen, veröffentlichen Sie ein Ereignis, das übereinstimmen sollte, und eines, das nicht übereinstimmen sollte, und bestätigen Sie beide Ergebnisse bei der Zielperson. Wenn Produzenten mit beiden APIs auf demselben Bus veröffentlichen, geben Sie jeder Art von Traffic ihre eigenen Abonnenten.

SystemMetadata Felder

SystemMetadataist für beide APIs gleich und ist der einzige Teil des Ereignisses, der EventBridge selbst geschrieben wird. Ein Filter mit einem bestimmten Gültigkeitsbereich SYSTEM_METADATA entspricht diesem Filter, und ein JSONata-Ausdruck liest ihn als. $events.SystemMetadata Jeder Wert ist eine Zeichenfolge. EventBridge lässt ein Feld aus, das keinen Wert hat, sodass eine JSONata-Referenz darauf alsundefined; only aws:DeliveryType ist immer vorhanden ausgewertet. In der folgenden Tabelle sind die Felder aufgeführt.

FeldValue (Wert)
aws:EventIdDer EventBridge zugewiesene Bezeichner wurde an den Herausgeber zurückgegeben als EventId
aws:Source, aws:DetailTypeDer Eintrag ist Source und DetailType fürPutEvents; der ursprüngliche Dienst oder Partner und sein Ereignistyp für eine Ereignisquelle. Kein Veröffentlichungsaufruf kann eine Quelle angeben, die mit beginntaws., also {"aws:Source":["aws.s3"]} beweist, dass Amazon S3 das Ereignis ausgelöst hat
aws:DeliveryTypeLIVEfür ein Ereignis, das so zugestellt wurde, wie es eingetroffen ist, REPLAY für einen Lesevorgang aus dem gespeicherten Verlauf. Siehe Wiedergeben von gespeicherten Ereignissen für einen Abonnenten
EventGroupId, DeduplicationIdSo, wie es bei der Veröffentlichung bereitgestellt wurde. Siehe Reihenfolge und Deduplizierung von Ereignissen auf einem Custom Event Bus
ContentTypeDer veröffentlichte Inhaltstyp: application/eventbridge+json forPutEvents; forPutRawEvents, for, der Wert des Eintrags, sodass Avro- und Protobuf-Daten, die in JSON EventBridge dekodiert wurden, immer noch oder application/avro application/protobuf
aws:IngestionTimeAls der Bus das Ereignis akzeptierte
aws:SequenceNumberDie Position der Veranstaltung im Bus; steigt mit der Reihenfolge der Einnahme
aws:SchemaId, aws:RegistryTypeDas Schema und die Registrierung, die für die Deserialisierung einer Avro- oder Protobuf-Nutzlast verwendet wurden; sonst fehlen

Metadataist nur bei Ereignissen vorhanden, die mit PutRawEvents diesem Set veröffentlicht wurden; für jedes andere Ereignis ist es leer. Forapplication/octet-stream, Data ist eine Base64-Zeichenfolge. In einem Transformer Ausdruck $events befindet sich ein Ereignis; nur in einem universellen Ziel Input ist es ein Array. Siehe Transformieren von Ereignissen mit JSonata.