

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
<a name="best-practices-partial-batch-responses"></a>

Bagian ini memberikan praktik terbaik untuk mengonfigurasi respons batch sebagian untuk sumber peristiwa Amazon SQS.
+ Konfigurasikan [antrian huruf mati](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) untuk menghindari pembuatan anti-pola bola salju dalam arsitektur aplikasi tanpa server Anda. Untuk informasi selengkapnya, lihat bagian [Menghindari anti-pola bola salju](#snowball-anti-patterns).
+ Konfigurasikan pemetaan sumber peristiwa fungsi Lambda Anda agar hanya menampilkan pesan yang gagal. Untuk melakukan ini, tambahkan **ReportBatchItemFailures**ke **FunctionResponseTypes**daftar 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
<a name="batch-processing"></a>
+ 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](https://docs.aws.amazon.com//lambda/latest/dg/example_serverless_SQS_Lambda_batch_item_failures_section.html) di AWS Lambda Panduan Pengembang.*

**Powertools untuk Utilitas Pemrosesan AWS Lambda Batch**
+ [Powertools untuk Utilitas Pemrosesan AWS Lambda Batch (Python)](https://docs.aws.amazon.com//powertools/python/latest/utilities/batch/)
+ [Powertools untuk Utilitas Pemrosesan AWS Lambda Batch (Java)](https://docs.aws.amazon.com//powertools/java/latest/utilities/batch/)
+ [Powertools untuk Utilitas Pemrosesan AWS Lambda Batch (.Net)](https://docs.aws.amazon.com//powertools/dotnet/utilities/batch-processing/)
+ [Powertools untuk Utilitas Pemrosesan AWS Lambda Batch () TypeScript](https://docs.aws.amazon.com//powertools/typescript/latest/features/batch/)

## Idempotensi
<a name="idempotency"></a>
+ 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 **maxReceiveCount**nilai pada antrian sumber. **RedrivePolicy** Untuk informasi selengkapnya, lihat [SetQueueAttributes](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)di Referensi *API Amazon SQS*. Juga, lihat [Memperkenalkan antrian surat mati Amazon Simple Queue Service redrive ke antrian sumber](https://aws.amazon.com//blogs/compute/introducing-amazon-simple-queue-service-dead-letter-queue-redrive-to-source-queues/).
+ 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 **ReportBatchItemFailures**dalam pemetaan sumber acara Anda. Untuk informasi selengkapnya, lihat [Menerapkan respons batch sebagian](https://docs.aws.amazon.com//lambda/latest/dg/services-sqs-errorhandling.html#services-sqs-batchfailurereporting) di *Panduan AWS Lambda Pengembang* dan [Bagaimana cara mencegah pesan Amazon SQS menjalankan fungsi Lambda saya lebih dari](https://repost.aws/knowledge-center/lambda-function-process-sqs-messages) sekali?

**Powertools untuk AWS Lambda Idempotency Utility**
+ [Powertools untuk AWS Lambda Idempotency Utility (Python)](https://docs.aws.amazon.com//powertools/python/latest/utilities/idempotency/)
+ [Powertools untuk AWS Lambda Idempotency Utility (Java)](https://docs.aws.amazon.com//powertools/java/latest/utilities/idempotency/)
+ [Powertools untuk AWS Lambda Idempotency Utility (.Net)](https://docs.aws.amazon.com//powertools/dotnet/utilities/idempotency/)
+ [Powertools untuk AWS Lambda Idempotency Utility () TypeScript](https://docs.aws.amazon.com//powertools/typescript/latest/features/idempotency/)

## Metrik-metrik
<a name="metrics"></a>
+ [Untuk menggabungkan metrik bisnis dalam fungsi Anda untuk melacak detail pekerjaan dan pekerjaan yang gagal, pertimbangkan untuk menggunakan **aws-embedded-metrics**atau Powertools for AWS Lambda Metrics Utility, yang memancarkan metrik operasional dan bisnis saat memproses peristiwa SQS dalam format metrik tertanam.](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Embedded_Metric_Format_Libraries.html)

**Powertools untuk Utilitas AWS Lambda Metrik**
+ [Powertools untuk Utilitas AWS Lambda Metrik (Python)](https://docs.aws.amazon.com/powertools/python/latest/core/metrics/)
+ [Powertools untuk Utilitas AWS Lambda Metrik (Java)](https://docs.aws.amazon.com/powertools/java/latest/core/metrics/)
+ [Powertools untuk Utilitas AWS Lambda Metrik (.Net)](https://docs.aws.amazon.com/powertools/dotnet/core/metrics/)
+ [Powertools untuk Utilitas AWS Lambda Metrik () TypeScript](https://docs.aws.amazon.com/powertools/typescript/latest/features/metrics/)
+  Jika Anda menggunakan antrean [First-In-First-Out (FIFO)](https://docs.aws.amazon.com/powertools/typescript/latest/features/metrics/), 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
<a name="snowball-anti-patterns"></a>

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.](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-dead-letter-queues.html) 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](https://docs.aws.amazon.com//AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-dead-letter-queue.html).*