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.
| Feld | Value (Wert) |
|---|---|
aws:EventId | Der EventBridge zugewiesene Bezeichner wurde an den Herausgeber zurückgegeben als EventId |
aws:Source, aws:DetailType | Der 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:DeliveryType | LIVEfü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, DeduplicationId | So, wie es bei der Veröffentlichung bereitgestellt wurde. Siehe Reihenfolge und Deduplizierung von Ereignissen auf einem Custom Event Bus |
ContentType | Der 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:IngestionTime | Als der Bus das Ereignis akzeptierte |
aws:SequenceNumber | Die Position der Veranstaltung im Bus; steigt mit der Reihenfolge der Einnahme |
aws:SchemaId, aws:RegistryType | Das 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.