Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Struttura degli eventi: dati, metadati e metadati di sistema
Filtri, trasformatori e parametri di destinazione condividono un unico modello di indirizzamento. EventBridge fornisce ogni evento con tre nomi di primo livello: Data contiene il payload, Metadata contiene le chiavi che hai fornito e SystemMetadata contiene i PutRawEvents campi che assegna. EventBridge La posizione dei tuoi campi Data dipende dall'API di pubblicazione. Entrambe le API producono lo stesso tipo di evento e EventBridge filtrano e trasformano entrambe allo stesso modo. La differenza è solo ciò che sta all'interno. Data
| Parte | Pubblicato con PutRawEvents |
Pubblicato con PutEvents |
|---|---|---|
Data |
Il tuo carico utile, esattamente come è stato inviato | Una busta consource, detail-typetime, e altri campi. Il tuo payload è il valore di. detail |
Metadata |
Le tue chiavi di metadati | Non presente |
SystemMetadata |
Campi assegnati da EventBridge | Campi assegnati da EventBridge |
Un'espressione JSONata vede l'evento come. $events Lo stesso identificatore d'ordine si trova in un percorso diverso per ogni API.
Pubblicato conPutRawEvents:
$events.Data.orderId
Pubblicato conPutEvents:
$events.Data.detail.orderId
La stessa differenza si applica a un filtro con un ambito diDATA. Il pattern è scritto in base al contenuto diData.
Pubblicato conPutRawEvents:
{ "total": [ { "numeric": [ ">", 500 ] } ] }
Pubblicato conPutEvents:
{ "detail": { "total": [ { "numeric": [ ">", 500 ] } ] } }
Importante
Un'espressione o un pattern scritto per la forma sbagliata non ha esito negativo. Non si risolve nulla, il filtro non corrisponde a nessun evento e il trasformatore non produce alcun output. Un abbonato il cui filtro non corrisponde a nulla sembra identico a un abbonato che non funziona. Prima di affidarti a un abbonato, pubblica un evento che dovrebbe corrispondere e uno che non dovrebbe corrispondere e conferma entrambi i risultati presso l'obiettivo. Se i produttori pubblicano con entrambe le API sullo stesso bus, assegnate a ciascun tipo di traffico i propri abbonati.
SystemMetadata campi
SystemMetadataè lo stesso per entrambe le API ed è l'unica parte dell'evento che viene scritta a EventBridge sua volta. Un filtro con un ambito SYSTEM_METADATA corrisponde ad esso e un'espressione JSonata lo legge come. $events.SystemMetadata Ogni valore è una stringa. EventBridge omette un campo che non ha valore, quindi un riferimento JSonata ad esso viene valutato comeundefined; only aws:DeliveryType è sempre presente. La tabella seguente elenca i campi.
| Campo | Valore |
|---|---|
aws:EventId | L'identificatore EventBridge assegnato, restituito all'editore come EventId |
aws:Source, aws:DetailType | La voce è DetailType destinata SourcePutEvents; il servizio o il partner di origine e il relativo tipo di evento per l'origine di un evento. Nessuna chiamata di pubblicazione può impostare una fonte che inizi conaws., quindi {"aws:Source":["aws.s3"]} dimostra che Amazon S3 ha prodotto l'evento |
aws:DeliveryType | LIVEper un evento consegnato così com'è arrivato, REPLAY per una lettura tratta dalla cronologia conservata. Per informazioni, consultare Riproduzione degli eventi conservati a un abbonato |
EventGroupId, DeduplicationId | Come fornito al momento della pubblicazione. Per informazioni, consultare Ordinamento e deduplicazione degli eventi su un bus di eventi personalizzato |
ContentType | Il tipo di contenuto così come pubblicato: application/eventbridge+json forPutEvents; forPutRawEvents, il valore della voce, quindi i dati Avro e Protobuf EventBridge decodificati in JSON mostrano ancora o application/avro application/protobuf |
aws:IngestionTime | Quando l'autobus ha accettato l'evento |
aws:SequenceNumber | La posizione dell'evento sull'autobus; aumenta con l'ordine di ingestione |
aws:SchemaId, aws:RegistryType | Lo schema e il registro utilizzati per deserializzare un payload Avro o Protobuf; altrimenti assenti |
Metadataè presente solo negli eventi pubblicati con PutRawEvents quel set; per ogni altro evento è vuoto. Forapplication/octet-stream, Data è una stringa Base64. In un'Transformerespressione $events è presente un evento; solo in un target universale Input è un array. Consulta Trasformare gli eventi con JSonata.