

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

# Menerbitkan acara ke Bus Acara Kustom
<a name="eb-custom-bus-publish"></a>

Anda menerbitkan acara ke Bus Peristiwa Kustom dengan salah satu dari dua operasi API, `PutEvents` atau`PutRawEvents`. Operasi yang Anda pilih memperbaiki bentuk peristiwa yang dikirimkan, dan bentuk itu menentukan bagaimana Anda menulis setiap filter, transformator, dan parameter target untuk bus. Pilih sebelum Anda menulis pelanggan pertama Anda. Untuk dua bentuk, lihat[Struktur acara: data, metadata, dan metadata sistem](eb-custom-bus-addressing.md).

Kedua operasi menghasilkan satu jenis acara, dan EventBridge memperlakukannya secara identik setelah acara ada di bus. `PutEvents`adalah kemudahan`PutRawEvents`: EventBridge mengambil entri`Source`,, `DetailType``Detail`, dan bidang lainnya, membuat amplop JSON darinya, dan menyimpan amplop itu sebagai muatan JSON dengan jenis `application/eventbridge+json` konten. Sejak saat itu, pemfilteran, transformasi, pemesanan, deduplikasi, retensi, dan pengiriman bekerja persis seperti yang mereka lakukan untuk acara JSON yang diterbitkan dengan. `PutRawEvents` Satu-satunya perbedaan yang dilihat pelanggan adalah di mana bidang Anda berada: di bagian atas `Data` untuk`PutRawEvents`, dan di bawah di `Data.detail` dalam amplop`PutEvents`. Untuk muatan Avro, Protobuf, dan buram, lihat. [Jenis konten yang didukung: JSON, Avro, Protobuf, dan byte mentah](eb-custom-bus-open-formats.md)


|  | `PutEvents` | `PutRawEvents` | 
| --- | --- | --- | 
| Bidang muatan | Detail, string JSON | Data, byte dalam format apa pun | 
| Diperlukan dalam setiap entri | Source, DetailType | Data, SystemMetadata.ContentType | 
| Jenis konten | Setel oleh EventBridge ke application/eventbridge\+json | Tetapkan oleh Anda:application/json,application/avro,application/protobuf, atauapplication/octet-stream. Lihat [Jenis konten yang didukung: JSON, Avro, Protobuf, dan byte mentah](eb-custom-bus-open-formats.md). | 
| Metadata Anda sendiri | Tidak tersedia | Metadata, peta hingga 100 kunci | 
| Input pemesanan dan deduplikasi | SystemMetadata.EventGroupId, SystemMetadata.DeduplicationId | Dua bidang yang sama | 
| Gunakan kapan | Acara Anda adalah JSON dan Anda menginginkan amplop yang sama dengan yang dihasilkan oleh Custom Event Bus - Classic | Payload Anda adalah biner atau non-JSON, Anda memerlukan kunci metadata Anda sendiri, atau Anda ingin payload dikirimkan persis seperti yang dikirim | 

## Publikasikan API
<a name="eb-custom-bus-publish-apis"></a>

Kedua operasi mengambil batch 1 hingga 100 entri per permintaan dan mengembalikan satu hasil per entri, dalam urutan permintaan. EventBridge menerima atau menolak setiap entri dengan sendirinya: entr `ErrorMessage` i yang ditolak membawa `ErrorCode` dan sebagai pengganti a`SuccessCode`, dan entri lain dalam permintaan yang sama tidak terpengaruh. Batch entri yang dimiliki bersama, dan baca setiap hasil daripada status HTTP saja; lihat[Membaca jawabannya](#eb-custom-bus-publish-results). Kedua panggilan diambil dari satu anggaran tarif publikasi untuk akun Anda, dan bus itu sendiri memiliki kuota konsumsi per detik yang menghitung setiap penerbit dan sumber acara; lihat[Kuota Bus Acara Kustom](eb-quota.md#eb-custom-bus-quotas).

### Publikasikan acara JSON dengan PutEvents
<a name="eb-custom-bus-publish-putevents"></a>

```
aws eventsv2 put-events \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --entries '[
        {
            "Source": "com.example.orders",
            "DetailType": "OrderPlaced",
            "Detail": "{\"orderId\":\"1001\",\"total\":42.5}"
        }
    ]'
```

### Publikasikan acara mentah dengan PutRawEvents
<a name="eb-custom-bus-publish-putrawevents"></a>

`Data`adalah bidang biner. Di dalamnya AWS CLI, berikan sebagai teks base64. Contoh berikut menerbitkan muatan JSON yang sama sebagai byte mentah dengan jenis konten`application/json`, dan menambahkan kunci metadata.

```
aws eventsv2 put-raw-events \
    --event-bus-arn arn:aws:events:us-east-1:111122223333:event-busv2/orders/EXAMPLE1234567890abcdef \
    --entries '[
        {
            "Data": "eyJvcmRlcklkIjoiMTAwMSIsInRvdGFsIjo0Mi41fQ==",
            "Metadata": { "tenant": "acme" },
            "SystemMetadata": { "ContentType": "application/json" }
        }
    ]'
```

Untuk menerbitkan Avro atau Protobuf, beri nama registri skema dalam permintaan dengan. `--schema-registry-configuration` `RegistryUri`adalah AWS Glue Schema Registry ARN atau URL HTTPS Confluent Cloud. Registri diberi nama per permintaan, bukan di bus. Acara dengan jenis konten tidak `application/octet-stream` perlu registri, karena EventBridge tidak memecahkan kode mereka.

## Menerbitkan byte mentah
<a name="eb-custom-bus-publish-raw-bytes"></a>

Untuk menerbitkan payload yang tidak EventBridge boleh mengurai atau memeriksa, panggil `PutRawEvents` dengan byte Base64-encoded masuk `Data` dan disetel ke`SystemMetadata.ContentType`. `application/octet-stream` EventBridge menyimpan dan mengirimkan byte persis seperti yang dikirim, sehingga `DATA` filter tidak dapat mencocokkannya; rute dengan `METADATA` kunci yang Anda tetapkan pada entri atau dengan`SYSTEM_METADATA`. Transformator pelanggan melihat muatan sebagai string Base64. `$events.Data` Untuk pilihan pengiriman dan alternatif deserialisasi untuk Avro dan Protobuf, lihat[Jenis konten yang didukung: JSON, Avro, Protobuf, dan byte mentah](eb-custom-bus-open-formats.md); untuk bagaimana muatan muncul pada transformator, lihat. [Mengubah acara dengan JSONata](eb-custom-bus-transform.md)

## Membaca jawabannya
<a name="eb-custom-bus-publish-results"></a>

Kedua operasi mengembalikan satu hasil untuk setiap entri, dalam urutan yang sama dengan permintaan. Setiap hasil membawa a `SuccessCode` atau `ErrorCode` dan`ErrorMessage`. Periksa setiap entri, karena permintaan dapat berhasil sementara entri individu gagal.

`SuccessCode`adalah `PUBLISHED` atau`DEDUPLICATED`. `DEDUPLICATED`berarti bahwa EventBridge mengenali entri sebagai duplikat dari peristiwa yang sudah diterima dan tidak menyimpan salinan kedua. Ini sukses, bukan kesalahan. Untuk informasi selengkapnya, lihat [Memesan dan mendeduplikasi peristiwa pada Bus Acara Kustom](eb-custom-bus-ordering.md).

Laporan tanggapan publikasi yang EventBridge menerima acara tersebut. Itu tidak melaporkan pengiriman. Untuk mengonfirmasi bahwa suatu peristiwa telah tiba, periksa target.

Bagian ini berisi topik berikut:
+ [Jenis konten yang didukung: JSON, Avro, Protobuf, dan byte mentah](eb-custom-bus-open-formats.md)
+ [Sumber acara untuk Bus Acara Kustom](eb-custom-bus-event-sources.md)
+ [Struktur acara: data, metadata, dan metadata sistem](eb-custom-bus-addressing.md)