Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Menggunakan pemfilteran acara dengan sumber acara Kinesis
Anda dapat menggunakan pemfilteran peristiwa untuk mengontrol rekaman mana dari aliran atau antrian yang dikirim Lambda ke fungsi Anda. Untuk informasi umum tentang cara kerja penyaringan acara, lihatKontrol peristiwa mana yang dikirim Lambda ke fungsi Anda.
Bagian ini berfokus pada penyaringan acara untuk sumber acara Kinesis.
Dasar-dasar penyaringan acara Kinesis
Misalkan produser memasukkan data JSON yang diformat ke dalam aliran data Kinesis Anda. Contoh catatan akan terlihat seperti berikut, dengan JSON data dikonversi ke string yang dikodekan Base64 di lapangan. data
{ "kinesis": { "kinesisSchemaVersion": "1.0", "partitionKey": "1", "sequenceNumber": "49590338271490256608559692538361571095921575989136588898", "data": "eyJSZWNvcmROdW1iZXIiOiAiMDAwMSIsICJUaW1lU3RhbXAiOiAieXl5eS1tbS1kZFRoaDptbTpzcyIsICJSZXF1ZXN0Q29kZSI6ICJBQUFBIn0=", "approximateArrivalTimestamp": 1545084650.987 }, "eventSource": "aws:kinesis", "eventVersion": "1.0", "eventID": "shardId-000000000006:49590338271490256608559692538361571095921575989136588898", "eventName": "aws:kinesis:record", "invokeIdentityArn": "arn:aws:iam::123456789012:role/lambda-role", "awsRegion": "us-east-2", "eventSourceARN": "arn:aws:kinesis:us-east-2:123456789012:stream/lambda-stream" }
Selama data yang dimasukkan produsen ke dalam aliran validJSON, Anda dapat menggunakan pemfilteran peristiwa untuk memfilter catatan menggunakan data
kunci. Misalkan produser memasukkan catatan ke dalam aliran Kinesis Anda dalam format berikutJSON.
{ "record": 12345, "order": { "type": "buy", "stock": "ANYCO", "quantity": 1000 } }
Untuk memfilter hanya catatan di mana jenis pesanan adalah “beli,” FilterCriteria
objeknya adalah sebagai berikut.
{ "Filters": [ { "Pattern": "{ \"data\" : { \"order\" : { \"type\" : [ \"buy\" ] } } }" } ] }
Untuk kejelasan tambahan, berikut adalah nilai filter yang Pattern
diperluas secara polosJSON.
{ "data": { "order": { "type": [ "buy" ] } } }
Anda dapat menambahkan filter menggunakan konsol, AWS CLI atau AWS SAM templat.
Untuk memfilter peristiwa dengan benar dari sumber Kinesis, bidang data dan kriteria filter Anda untuk bidang data harus dalam format yang validJSON. Jika salah satu bidang tidak dalam JSON format yang valid, Lambda akan menghapus pesan atau melempar pengecualian. Tabel berikut merangkum perilaku spesifik:
Format data masuk | Format pola filter untuk properti data | Tindakan yang dihasilkan |
---|---|---|
Valid JSON |
Valid JSON |
Filter Lambda berdasarkan kriteria filter Anda. |
Valid JSON |
Tidak ada pola filter untuk properti data |
Filter Lambda (hanya pada properti metadata lainnya) berdasarkan kriteria filter Anda. |
Valid JSON |
Bukan- JSON |
Lambda melempar pengecualian pada saat pembuatan atau pembaruan pemetaan sumber acara. Pola filter untuk properti data harus dalam JSON format yang valid. |
Bukan- JSON |
Valid JSON |
Lambda menjatuhkan rekor. |
Bukan- JSON |
Tidak ada pola filter untuk properti data |
Filter Lambda (hanya pada properti metadata lainnya) berdasarkan kriteria filter Anda. |
Bukan- JSON |
Bukan- JSON |
Lambda melempar pengecualian pada saat pembuatan atau pembaruan pemetaan sumber acara. Pola filter untuk properti data harus dalam JSON format yang valid. |
Menyaring catatan agregat Kinesis
Dengan Kinesis, Anda dapat menggabungkan beberapa catatan ke dalam satu catatan Kinesis Data Streams untuk meningkatkan throughput data Anda. Lambda hanya dapat menerapkan kriteria filter ke rekaman agregat saat Anda menggunakan Kinesis yang ditingkatkan fan-out. Memfilter rekaman agregat dengan Kinesis standar tidak didukung. Saat menggunakan fan-out yang disempurnakan, Anda mengonfigurasi konsumen throughput khusus Kinesis untuk bertindak sebagai pemicu fungsi Lambda Anda. Lambda kemudian memfilter catatan agregat dan hanya meneruskan catatan yang memenuhi kriteria filter Anda.
Untuk mempelajari lebih lanjut tentang agregasi catatan Kinesis, lihat bagian Agregasi di halaman Konsep Kunci Perpustakaan Produsen Kinesis (). KPL Untuk mempelajari lebih lanjut tentang menggunakan Lambda dengan Kinesis yang ditingkatkan fan-out, lihat Meningkatkan performa pemrosesan streaming real-time dengan Amazon Kinesis Data Streams yang disempurnakan oleh fan-out dan Lambda di blog komputasi