

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
<a name="eb-custom-bus-addressing"></a>

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 con`PutRawEvents`:

```
$events.Data.orderId
```

Pubblicato con`PutEvents`:

```
$events.Data.detail.orderId
```

La stessa differenza si applica a un filtro con un ambito di`DATA`. Il pattern è scritto in base al contenuto di`Data`.

Pubblicato con`PutRawEvents`:

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

Pubblicato con`PutEvents`:

```
{ "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
<a name="eb-custom-bus-addressing-system"></a>

`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 come`undefined`; 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](eb-custom-bus-replay.md) | 
| EventGroupId, DeduplicationId | Come fornito al momento della pubblicazione. Per informazioni, consultare [Ordinamento e deduplicazione degli eventi su un bus di eventi personalizzato](eb-custom-bus-ordering.md) | 
| 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. For`application/octet-stream`, `Data` è una stringa Base64. In un'`Transformer`espressione `$events` è presente un evento; solo in un target universale `Input` è un array. Consulta [Trasformare gli eventi con JSonata](eb-custom-bus-transform.md).