

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

# Memfilter acara untuk pelanggan
<a name="eb-custom-bus-filtering"></a>

Filter memilih acara mana yang diterima pelanggan. Lampirkan a `FilterConfiguration` ke pelanggan dengan satu atau lebih filter, masing-masing menamai sintaks pola `Scope` dan `Pattern` dalam EventBridge peristiwa. Misalnya, `DATA` filter dengan pola hanya `{"detail":{"amount":[{"numeric":[">",500]}]}}` mengirimkan pesanan lebih dari 500 yang diterbitkan`PutEvents`. Halaman ini menjelaskan model filter; untuk operator pola, lihat[P EventBridge ola acara Amazon](eb-event-patterns.md). Filter pelanggan tidak mendukung pencocokan wildcard.

## Cara kerja penyaringan
<a name="eb-custom-bus-filtering-how"></a>

Setiap filter memiliki dua bagian: a`Scope`, yang merupakan bagian dari peristiwa yang diteliti filter (`DATA`,`METADATA`, atau`SYSTEM_METADATA`; see[Struktur acara: data, metadata, dan metadata sistem](eb-custom-bus-addressing.md)), dan a`Pattern`, pola peristiwa yang disediakan sebagai string JSON. EventBridge menggabungkan filter dalam konfigurasi dengan AND: suatu peristiwa harus cocok dengan setiap filter sebelum pelanggan menerimanya. Pelanggan tanpa `FilterConfiguration` menerima semua acara.

## Tiga cakupan
<a name="eb-custom-bus-filtering-scopes"></a>

`DATA`  
Memeriksa data acara. Karena`PutRawEvents`, data adalah payload yang Anda kirim. Karena`PutEvents`, data adalah EventBridge amplop, dan Anda `Detail` bersarang di bawah `detail` kunci. `DATA`filter mendukung setiap operator pola peristiwa kecuali wildcard. EventBridge deserialisasi `application/avro` dan `application/protobuf` peristiwa ke JSON, dan `DATA` filter memeriksa JSON itu seperti peristiwa JSON apa pun. Su `application/octet-stream` atu peristiwa tidak memiliki data yang dapat dibaca filter, sehingga pelanggan dengan `DATA` filter tidak pernah cocok; `METADATA` dan `SYSTEM_METADATA` filter masih bekerja di atasnya.

`METADATA`  
Memeriksa pasangan kunci-nilai yang ditetapkan penerbit. `Metadata` `PutRawEvents` `METADATA`filter hanya cocok dengan nilai yang tepat: setiap nilai dalam pola harus berupa larik JSON dari nilai yang tepat, dan operator seperti `prefix``numeric`,`exists`,, dan tidak `$or` didukung. Untuk menggunakan operator tersebut, filter pada `DATA` atau`SYSTEM_METADATA`. A `PutEvents` cara tidak memiliki metadata penerbit, jadi `METADATA` filter tidak pernah cocok dengan satu.

`SYSTEM_METADATA`  
Memeriksa EventBridge kumpulan bidang pada acara, tercantum dalam tabel berikut. `SYSTEM_METADATA`filter mendukung setiap operator pola peristiwa kecuali wildcard. Bidang yang EventBridge menghasilkan membawa `aws:` awalan.


| Bidang | Deskripsi | Hadir pada | 
| --- | --- | --- | 
| ContentType | Jenis konten dari data acara | Setiap acara | 
| DeduplicationId | Pengidentifikasi deduplikasi | Setiap acara | 
| EventGroupId | Grup acara | Setiap acara | 
| aws:EventId | Pengidentifikasi yang EventBridge ditetapkan | Setiap acara | 
| aws:IngestionTime | Saat EventBridge menerima acara | Setiap acara | 
| aws:SequenceNumber | Nomor urutan yang EventBridge ditetapkan | Setiap acara | 
| aws:DeliveryType | LIVE atau REPLAY | Setiap acara yang disampaikan | 
| aws:SchemaId | Pengidentifikasi skema dari registri: versi UUID untuk Glue, bilangan bulat untuk Confluent | Acara Avro dan Protobuf | 
| aws:RegistryType | Glue atau Confluent | Acara Avro dan Protobuf | 
| aws:Source | Sumber acara | PutEvents, AWS layanan, dan acara mitra SaaS | 
| aws:DetailType | Jenis detail acara | PutEvents, AWS layanan, dan acara mitra SaaS | 

**catatan**  
Untuk memfilter acara AWS layanan atau acara mitra SaaS, gunakan `aws:Source` dan`aws:DetailType`. EventBridge menulis bidang ini dan tidak ada panggilan publikasi yang dapat menetapkan sumber yang dimulai dengan`aws.`, sehingga mereka mengidentifikasi asal acara yang diverifikasi. Jangan gunakan `detail-type` bidang `source` dan dalam data acara untuk tujuan ini; penerbit mana pun dapat menulisnya. Lihat [Sumber acara untuk Bus Acara Kustom](eb-custom-bus-event-sources.md).

## Contoh: memfilter acara yang diterbitkan dengan PutRawEvents
<a name="eb-custom-bus-filtering-raw-example"></a>

`PutRawEvents`menerbitkan payload dengan jenis konten. `DATA`Filter cocok dengan payload secara langsung, dan `METADATA` filter cocok dengan peta metadata penerbit. Konfigurasi berikut memiliki satu filter per lingkup; pelanggan menerima peristiwa hanya ketika ketiganya cocok: muatan lebih dari 500, kunci metadata `region` adalah`EU`, dan jenis kontennya adalah JSON. `amount`

```
{
    "Filters": [
        { "Scope": "DATA", "Pattern": "{\"amount\":[{\"numeric\":[\">\",500]}]}" },
        { "Scope": "METADATA", "Pattern": "{\"region\":[\"EU\"]}" },
        { "Scope": "SYSTEM_METADATA", "Pattern": "{\"ContentType\":[\"application/json\"]}" }
    ]
}
```

## Contoh: memfilter acara yang diterbitkan dengan PutEvents
<a name="eb-custom-bus-filtering-putevents-example"></a>

`PutEvents`menerbitkan acara dalam am EventBridge plop, dibuat dari entri`Source`,`DetailType`,`Resources`,`Time`, dan`Detail`. `DATA`Filter cocok dengan amplop ini, dengan sarang Anda `Detail` di `detail` bawahnya. Acara `ContentType` itu`application/eventbridge+json`, `aws:Source` dan `aws:DetailType` berasal dari entri dan`DetailType`, `Source` dan amplop juga mengekspos `source` dan `detail-type` dalam `DATA` ruang lingkup. Konfigurasi berikut cocok ketika detailnya lebih dari 500 dan sumbernya`com.myapp.storage`. `amount`

```
{
    "Filters": [
        { "Scope": "DATA", "Pattern": "{\"detail\":{\"amount\":[{\"numeric\":[\">\",500]}]}}" },
        { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"com.myapp.storage\"]}" }
    ]
}
```

## Contoh: memfilter peristiwa dari sumber peristiwa
<a name="eb-custom-bus-filtering-event-source-example"></a>

Peristiwa yang dicerna oleh sumber peristiwa tiba dalam EventBridge amplop, dengan layanan atau mitra asal. `aws:Source` Untuk menerima hanya peristiwa yang dibuat objek Amazon S3 untuk satu bucket, cocokkan layanan di dalam `SYSTEM_METADATA` dan bucket in. `DATA` Untuk mitra, cocokkan nama sumber acara mitra, misalnya dengan `prefix` aktif`aws.partner/example.com`.

```
{
    "Filters": [
        { "Scope": "SYSTEM_METADATA", "Pattern": "{\"aws:Source\":[\"aws.s3\"]}" },
        { "Scope": "DATA", "Pattern": "{\"detail-type\":[\"Object Created\"],\"detail\":{\"bucket\":{\"name\":[\"amzn-s3-demo-bucket\"]}}}" }
    ]
}
```

## Perilaku dan batasan
<a name="eb-custom-bus-filtering-limits"></a>
+ **DAN kombinasi**: suatu peristiwa harus cocok dengan setiap filter dalam konfigurasi.
+ **Tanpa filter**: pelanggan tanpa konfigurasi filter menerima semua acara.
+ **Satu filter per lingkup**: konfigurasi menyimpan paling banyak satu filter untuk setiap cakupan, jadi paling banyak tiga filter. EventBridge menolak konfigurasi dengan dua filter dari cakupan yang sama.
+ **Wildcard**: `wildcard` operator dan `anything-but` dengan wildcard ditolak, dengan pesan Pola * Filter tidak boleh berisi pencocokan wildcard (wildcard, apa pun kecuali wildcard). *
+ **Kombinasi pola dengan `$or`**: EventBridge menolak filter yang `$or` penggunaannya menghasilkan lebih dari 1.000 kombinasi pola. Kalikan jumlah argumen dalam setiap `$or` array: satu array dari tiga memberikan tiga kombinasi, array kedua dari dua memberikan enam.
+ **Ukuran**: semua filter dalam konfigurasi berbagi satu batas 4.096 byte di tiga cakupan.
+ **Bentuk pola**: `DATA` pola dapat memiliki array di akarnya; `METADATA` dan `SYSTEM_METADATA` pola harus berupa objek JSON. Pola yang tidak valid JSON ditolak saat Anda membuat atau memperbarui pelanggan.
+ **Perubahan**: filter pelanggan dapat berubah 24 kali dalam 24 jam bergulir; lihat[Memperbarui, menjeda, dan melanjutkan pelanggan](eb-custom-bus-update.md).

Pola yang ditulis untuk bentuk yang salah tidak gagal; itu tidak cocok dengan apa pun. Sebelum Anda mengandalkan pelanggan, publikasikan satu acara yang seharusnya cocok dan yang tidak, dan periksa keduanya pada target.