Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Menggunakan Lambda dengan Amazon SQS

Mode fokus
Menggunakan Lambda dengan Amazon SQS - AWS Lambda

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

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

Anda dapat menggunakan fungsi Lambda untuk memproses pesan dalam antrean Amazon Simple Queue Service (Amazon SQS). Lambda mendukung antrian standar dan antrianfirst-in, first-out (FIFO) untuk pemetaan sumber acara. Fungsi Lambda dan antrian Amazon SQS harus Wilayah AWS sama, meskipun bisa berbeda. Akun AWS

Memahami perilaku polling dan batching untuk pemetaan sumber peristiwa Amazon SQS

Dengan pemetaan sumber peristiwa Amazon SQS, Lambda melakukan polling antrian dan memanggil fungsi Anda secara sinkron dengan suatu peristiwa. Setiap acara dapat berisi sekumpulan beberapa pesan dari antrian. Lambda menerima peristiwa ini satu batch pada satu waktu, dan memanggil fungsi Anda sekali untuk setiap batch. Ketika fungsi Anda berhasil memproses suatu batch, Lambda menghapus pesannya dari antrean.

Saat Lambda menerima batch, pesan tetap berada dalam antrean tetapi disembunyikan selama batas waktu visibilitas antrian. Jika fungsi Anda berhasil memproses semua pesan dalam batch, Lambda menghapus pesan dari antrian. Secara default, jika fungsi Anda mengalami kesalahan saat memproses batch, semua pesan dalam kumpulan tersebut akan terlihat lagi dalam antrian setelah batas waktu visibilitas berakhir. Untuk alasan ini, kode fungsi Anda harus dapat memproses pesan yang sama beberapa kali tanpa efek samping yang tidak diinginkan.

Awas

Pemetaan sumber peristiwa Lambda memproses setiap peristiwa setidaknya sekali, dan pemrosesan duplikat catatan dapat terjadi. Untuk menghindari potensi masalah yang terkait dengan duplikat peristiwa, kami sangat menyarankan agar Anda membuat kode fungsi Anda idempoten. Untuk mempelajari lebih lanjut, lihat Bagaimana cara membuat fungsi Lambda saya idempoten di Pusat Pengetahuan. AWS

Untuk mencegah Lambda memproses pesan beberapa kali, Anda dapat mengonfigurasi pemetaan sumber peristiwa untuk menyertakan kegagalan item batch dalam respons fungsi, atau Anda dapat menggunakan DeleteMessageAPI untuk menghapus pesan dari antrian karena fungsi Lambda berhasil memprosesnya.

Untuk informasi selengkapnya tentang parameter konfigurasi yang didukung Lambda untuk pemetaan sumber peristiwa SQS, lihat. Membuat pemetaan sumber acara SQS

Contoh acara pesan antrian standar

contoh Kejadian pesan Amazon SQS (antrean standar)
{ "Records": [ { "messageId": "059f36b4-87a3-44ab-83d2-661975830a7d", "receiptHandle": "AQEBwJnKyrHigUMZj6rYigCgxlaS3SLy0a...", "body": "Test message.", "attributes": { "ApproximateReceiveCount": "1", "SentTimestamp": "1545082649183", "SenderId": "AIDAIENQZJOLO23YVJ4VO", "ApproximateFirstReceiveTimestamp": "1545082649185" }, "messageAttributes": { "myAttribute": { "stringValue": "myValue", "stringListValues": [], "binaryListValues": [], "dataType": "String" } }, "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", "eventSource": "aws:sqs", "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", "awsRegion": "us-east-2" }, { "messageId": "2e1424d4-f796-459a-8184-9c92662be6da", "receiptHandle": "AQEBzWwaftRI0KuVm4tP+/7q1rGgNqicHq...", "body": "Test message.", "attributes": { "ApproximateReceiveCount": "1", "SentTimestamp": "1545082650636", "SenderId": "AIDAIENQZJOLO23YVJ4VO", "ApproximateFirstReceiveTimestamp": "1545082650649" }, "messageAttributes": {}, "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", "eventSource": "aws:sqs", "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:my-queue", "awsRegion": "us-east-2" } ] }

Secara default, Lambda melakukan polling hingga 10 pesan dalam antrian sekaligus dan mengirimkan batch tersebut ke fungsi Anda. Untuk menghindari menjalankan fungsi dengan sejumlah kecil catatan, Anda dapat mengonfigurasi sumber peristiwa untuk menyangga catatan hingga 5 menit dengan mengonfigurasi jendela batch. Sebelum menjalankan fungsi, Lambda melanjutkan polling pesan dari antrian standar hingga jendela batch kedaluwarsa, kuota ukuran payload pemanggilan tercapai, atau ukuran batch maksimum yang dikonfigurasi tercapai.

Jika Anda menggunakan jendela batch dan antrian SQS Anda berisi lalu lintas yang sangat rendah, Lambda mungkin menunggu hingga 20 detik sebelum menjalankan fungsi Anda. Ini benar bahkan jika Anda mengatur jendela batch lebih rendah dari 20 detik.

catatan

Di Java, Anda mungkin mengalami kesalahan pointer null saat deserialisasi JSON. Ini bisa disebabkan oleh bagaimana kasus “Records” dan “EventSourcEarn” dikonversi oleh pemeta objek JSON.

Contoh acara pesan antrian FIFO

Untuk antrean FIFO, rekaman berisi atribut tambahan yang terkait dengan deduplikasi dan pengurutan.

contoh Kejadian pesan Amazon SQS (antrean FIFO)
{ "Records": [ { "messageId": "11d6ee51-4cc7-4302-9e22-7cd8afdaadf5", "receiptHandle": "AQEBBX8nesZEXmkhsmZeyIE8iQAMig7qw...", "body": "Test message.", "attributes": { "ApproximateReceiveCount": "1", "SentTimestamp": "1573251510774", "SequenceNumber": "18849496460467696128", "MessageGroupId": "1", "SenderId": "AIDAIO23YVJENQZJOL4VO", "MessageDeduplicationId": "1", "ApproximateFirstReceiveTimestamp": "1573251510774" }, "messageAttributes": {}, "md5OfBody": "e4e68fb7bd0e697a0ae8f1bb342846b3", "eventSource": "aws:sqs", "eventSourceARN": "arn:aws:sqs:us-east-2:123456789012:fifo.fifo", "awsRegion": "us-east-2" } ] }
PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.