Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Praktik terbaik untuk menerapkan respons batch sebagian
Bagian ini memberikan praktik terbaik untuk mengonfigurasi respons batch sebagian untuk sumber peristiwa Amazon SQS.
-
Konfigurasikan antrian huruf mati untuk menghindari pembuatan anti-pola bola salju dalam arsitektur aplikasi tanpa server Anda. Untuk informasi selengkapnya, lihat bagian Menghindari anti-pola bola salju.
-
Konfigurasikan pemetaan sumber peristiwa fungsi Lambda Anda agar hanya menampilkan pesan yang gagal. Untuk melakukan ini, tambahkan ReportBatchItemFailureske FunctionResponseTypesdaftar saat Anda mengonfigurasi pemetaan sumber peristiwa. Fungsi Lambda Anda, ketika dipanggil oleh SQS, harus mengimplementasikan respons batch sebagian. Pertimbangkan untuk menggunakan utilitas Powertools for AWS Lambda Batch Processing, yang memproses pesan SQS dengan dukungan parsial-batch bawaan.
Pemrosesan batch
-
Menerapkan respons batch sebagian dalam fungsi Lambda Anda yang dipanggil oleh SQS. Pertimbangkan untuk menggunakan utilitas Powertools for AWS Lambda Batch Processing. Utilitas ini menangani pemrosesan pesan SQS dengan dukungan respons batch sebagian bawaan. Untuk informasi selengkapnya, lihat Melaporkan kegagalan item batch untuk fungsi Lambda dengan pemicu Amazon SQS di AWS Lambda Panduan Pengembang.
Powertools untuk Utilitas Pemrosesan AWS Lambda Batch
Idempotensi
-
Tentukan berapa kali Anda ingin pesan dikirim ke antrian sumber sebelum dipindahkan ke antrian huruf mati. Pastikan nilai yang Anda tentukan sesuai dengan kasus penggunaan aplikasi Anda dengan mengidentifikasi kemungkinan penyebab kegagalan dan perkiraan waktu pemulihannya. Untuk menentukan jumlah percobaan ulang, konfigurasikan maxReceiveCountnilai pada antrian sumber. RedrivePolicy Untuk informasi selengkapnya, lihat SetQueueAttributesdi Referensi API Amazon SQS. Juga, lihat Memperkenalkan antrian surat mati Amazon Simple Queue Service redrive ke antrian sumber
. -
Pastikan kode Lambda Anda idempoten dan dapat menangani pesan beberapa kali. Untuk mengimplementasikan idempotensi, pertimbangkan untuk menggunakan Powertools for AWS Lambda Idempotency Utility, yang menyiapkan kode fungsi untuk mendukung pekerjaan individual di dalam batch Amazon SQS. Mulailah dengan memasukkan ReportBatchItemFailuresdalam pemetaan sumber acara Anda. Untuk informasi selengkapnya, lihat Menerapkan respons batch sebagian di Panduan AWS Lambda Pengembang dan Bagaimana cara mencegah pesan Amazon SQS menjalankan fungsi Lambda saya lebih dari
sekali?
Powertools untuk AWS Lambda Idempotency Utility
Metrik
Powertools untuk Utilitas AWS Lambda Metrik
-
Jika Anda menggunakan antrean First-In-First-Out (FIFO), fungsi Anda harus berhenti memproses pesan setelah kegagalan pertama dan mengembalikan semua pesan yang gagal dan belum diproses. batchItemFailures Ini membantu menjaga urutan pesan antrian Anda.
catatan
Untuk melacak kinerja keseluruhan aplikasi yang menggunakan pemrosesan sebagian batch, diperlukan pelacakan kinerja tingkat kode. Setelah pemrosesan batch dikonfigurasi, pemanggilan fungsi Lambda biasanya berhasil terlepas dari hasil pemrosesan.
Menghindari anti-pola bola salju
Lambda dan Amazon SQS tidak dapat mengontrol pesan yang ditulis oleh layanan mikro upstream ke antrean SQS. Jika ada pesan yang tidak dapat diproses, Lambda mengembalikan pesan yang belum diproses tersebut ke antrean SQS sumber kecuali antrian huruf mati terpisah dikonfigurasi. Pesan yang belum diproses kemudian dicoba ulang oleh fungsi Lambda. Jika tidak ada antrian huruf mati, jumlah pesan yang belum diproses yang dikembalikan ke antrean Amazon SQS akhirnya melebihi jumlah pesan valid antrian.
Jenis anti-pola bola salju ini—di mana setiap doa Lambda berturut-turut memperburuk masalah—dapat menyebabkan masalah berikut:
-
Pengalaman pengguna yang buruk karena pekerjaan membutuhkan waktu lebih lama dari biasanya untuk diproses, atau mereka tidak memproses sama sekali
-
Peningkatan biaya sebanding dengan peningkatan jumlah pesan secara eksponensial dalam antrian Amazon SQS dan percobaan ulang pesan
-
Mengurangi kapasitas komputasi Lambda untuk aplikasi atau Akun AWS jika fungsi tidak memiliki batasan pada permintaan pemanggilannya
Untuk menghindari pembuatan anti-pola bola salju saat mengonfigurasi respons batch parsi, yang terbaik adalah juga membuat antrian huruf mati. Antrian terpisah ini dapat menyimpan pesan yang tidak berhasil diproses dan membantu Anda mengelola siklus hidup pesan aplikasi yang belum diproses dengan lebih baik.
Untuk informasi selengkapnya, lihat Mengonfigurasi antrean huruf mati menggunakan konsol Amazon SQS di Panduan Pengembang Amazon SQS.