

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Struktur acara: data, metadata, dan metadata sistem
<a name="eb-custom-bus-addressing"></a>

Filter, transformer, dan parameter target berbagi satu model pengalamatan. EventBridge mengirimkan setiap peristiwa di bawah tiga nama tingkat atas: `Data` memegang payload, `Metadata` memegang kunci yang Anda berikan`PutRawEvents`, dan `SystemMetadata` menyimpan bidang yang EventBridge ditetapkan. Di mana bidang Anda berada di dalamnya `Data` tergantung pada API publikasi. Kedua API menghasilkan jenis peristiwa yang sama, dan mem EventBridge filter serta mengubah keduanya dengan cara yang sama. Perbedaannya hanya apa yang ada di dalamnya`Data`.


| Bagian | Diterbitkan dengan `PutRawEvents` | Diterbitkan dengan `PutEvents` | 
| --- | --- | --- | 
| Data | Muatan Anda, persis seperti yang dikirim | Amplop dengansource,detail-type,time, dan bidang lainnya. Muatan Anda adalah nilaidetail. | 
| Metadata | Kunci metadata Anda | Tidak hadir | 
| SystemMetadata | Bidang yang ditugaskan oleh EventBridge | Bidang yang ditugaskan oleh EventBridge | 

Ekspresi JSONata melihat peristiwa sebagai. `$events` Pengidentifikasi pesanan yang sama berada di jalur yang berbeda untuk setiap API.

Diterbitkan dengan`PutRawEvents`:

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

Diterbitkan dengan`PutEvents`:

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

Perbedaan yang sama berlaku untuk filter dengan ruang lingkup`DATA`. Pola ditulis terhadap isi`Data`.

Diterbitkan dengan`PutRawEvents`:

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

Diterbitkan dengan`PutEvents`:

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

**penting**  
Ekspresi atau pola yang ditulis untuk bentuk yang salah tidak gagal. Ini tidak menyelesaikan apa-apa, filter tidak cocok dengan peristiwa, dan transformator tidak menghasilkan output. Pelanggan yang filternya tidak cocok dengan apa pun terlihat identik dengan pelanggan yang tidak berfungsi. Sebelum Anda mengandalkan pelanggan, publikasikan satu acara yang seharusnya cocok dan yang tidak, dan konfirmasikan kedua hasil pada target. Jika produsen mempublikasikan dengan kedua API ke bus yang sama, berikan setiap jenis lalu lintas pelanggannya sendiri.

## SystemMetadata bidang
<a name="eb-custom-bus-addressing-system"></a>

`SystemMetadata`sama untuk kedua API dan merupakan satu-satunya bagian dari acara yang ditulis EventBridge sendiri. Filter dengan cakupan kecoco `SYSTEM_METADATA` kan terhadapnya, dan ekspresi JSONata membacanya sebagai. `$events.SystemMetadata` Setiap nilai adalah string. EventBridge menghilangkan bidang yang tidak memiliki nilai, sehingga referensi JSONata untuk itu dievaluasi sebagai`undefined`; hanya selalu `aws:DeliveryType` ada. Tabel berikut mencantumkan bidang.


| Bidang | Nilai | 
| --- | --- | 
| aws:EventId | Pengidentifikasi EventBridge yang ditetapkan, dikembalikan ke penerbit sebagai EventId | 
| aws:Source, aws:DetailType | Entri Source dan DetailType untukPutEvents; layanan atau mitra asal dan jenis acaranya untuk sumber acara. Tidak ada panggilan publikasi yang dapat mengatur sumber yang dimulai denganaws., jadi {"aws:Source":["aws.s3"]} membuktikan bahwa Amazon S3 menghasilkan acara tersebut | 
| aws:DeliveryType | LIVEuntuk acara yang disampaikan saat tiba, REPLAY untuk satu bacaan dari sejarah yang disimpan. Lihat [Memutar ulang peristiwa yang disimpan ke pelanggan](eb-custom-bus-replay.md) | 
| EventGroupId, DeduplicationId | Seperti yang disediakan pada waktu publikasi. Lihat [Memesan dan mendeduplikasi peristiwa pada Bus Acara Kustom](eb-custom-bus-ordering.md) | 
| ContentType | Jenis konten seperti yang diterbitkan: application/eventbridge\+json forPutEvents; forPutRawEvents, nilai entri, jadi data Avro dan Protobuf yang diterjemahkan ke JSON EventBridge masih menunjukkan atau application/avro application/protobuf | 
| aws:IngestionTime | Ketika bus menerima acara | 
| aws:SequenceNumber | Posisi acara di bus; meningkat dengan urutan konsumsi | 
| aws:SchemaId, aws:RegistryType | Skema dan registri yang digunakan untuk deserialisasi payload Avro atau Protobuf; tidak ada sebaliknya | 

`Metadata`hanya hadir pada acara `PutRawEvents` yang diterbitkan dengan set itu; untuk setiap peristiwa lainnya kosong. Untuk`application/octet-stream`, `Data` adalah string Base64. Dalam `Transformer` ekspresi `$events` adalah satu peristiwa; hanya dalam target universal itu `Input` adalah array. Lihat [Mengubah acara dengan JSONata](eb-custom-bus-transform.md).