Membuat dan mengonfigurasi pemetaan sumber peristiwa Amazon SQS - AWS Lambda

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

Membuat dan mengonfigurasi pemetaan sumber peristiwa Amazon SQS

Untuk memproses pesan Amazon SQS dengan Lambda, konfigurasikan antrian Anda dengan pengaturan yang sesuai, lalu buat pemetaan sumber peristiwa Lambda.

Mengonfigurasi antrean untuk digunakan dengan Lambda

Jika Anda belum memiliki antrean Amazon SQS yang ada, buat antrean untuk berfungsi sebagai sumber acara untuk fungsi Lambda Anda. Kemudian konfigurasikan antrian untuk memberikan waktu yang cukup bagi fungsi Lambda Anda untuk memproses setiap kumpulan peristiwa.

Untuk memungkinkan waktu fungsi Anda memproses setiap kumpulan rekaman, atur batas waktu visibilitas antrian sumber menjadi setidaknya enam kali batas waktu konfigurasi pada fungsi Anda. Waktu tambahan memungkinkan Lambda untuk mencoba lagi jika fungsi Anda dibatasi saat memproses batch sebelumnya.

Secara default, jika Lambda menemukan kesalahan di titik mana pun saat memproses batch, semua pesan dalam batch tersebut kembali ke antrian. Setelah batas waktu visibilitas, pesan menjadi terlihat oleh Lambda lagi. Anda dapat mengonfigurasi pemetaan sumber peristiwa untuk menggunakan respons batch sebagian agar hanya mengembalikan pesan yang gagal kembali ke antrian. Selain itu, jika fungsi Anda gagal memproses pesan beberapa kali, Amazon SQS dapat mengirimkannya ke antrian huruf mati. Sebaiknya setel kebijakan redrive antrian sumber Anda ke setidaknya 5. maxReceiveCount Ini memberi Lambda beberapa kesempatan untuk mencoba lagi sebelum mengirim pesan yang gagal langsung ke antrian surat mati.

Menyiapkan izin peran eksekusi Lambda

Kebijakan AWSLambdaSQSQueueExecutionRole AWS terkelola mencakup izin yang perlu dibaca Lambda dari antrean Amazon SQS Anda. Anda dapat menambahkan kebijakan terkelola ini ke peran eksekusi fungsi Anda.

Secara opsional, jika Anda menggunakan antrean terenkripsi, Anda juga perlu menambahkan izin berikut ke peran eksekusi Anda:

Membuat pemetaan sumber acara SQS

Buat pemetaan sumber kejadian untuk memberi tahu Lambda agar mengirim item dari antrean Anda ke fungsi Lambda. Anda dapat membuat beberapa pemetaan sumber kejadian untuk memproses item dari beberapa antrean dengan satu fungsi. Ketika Lambda memanggil fungsi target, kejadian dapat berisi beberapa item, hingga ukuran batch maksimum yang dapat dikonfigurasi.

Untuk mengonfigurasi fungsi agar dibaca dari Amazon SQS, lampirkan kebijakan AWSLambdaSQSQueueExecutionRole AWS terkelola ke peran eksekusi Anda. Kemudian, buat pemetaan sumber peristiwa SQS dari konsol menggunakan langkah-langkah berikut.

Untuk menambahkan izin dan membuat pemicu
  1. Buka Halaman fungsi di konsol Lambda.

  2. Pilih nama sebuah fungsi.

  3. Pilih tab Konfigurasi, lalu pilih Izin.

  4. Di bawah Nama peran, pilih tautan ke peran eksekusi Anda. Tautan ini membuka peran di konsol IAM.

    Tautan ke peran eksekusi
  5. Pilih Tambahkan izin, lalu pilih Lampirkan kebijakan.

    Lampirkan kebijakan di konsol IAM
  6. Di bidang pencarian, masukkanAWSLambdaSQSQueueExecutionRole. Tambahkan kebijakan ini ke peran eksekusi Anda. Ini adalah kebijakan AWS terkelola yang berisi izin yang perlu dibaca fungsi Anda dari antrean Amazon SQS. Untuk informasi selengkapnya tentang kebijakan ini, lihat AWSLambdaSQSQueueExecutionRoledi Referensi Kebijakan AWS Terkelola.

  7. Kembali ke fungsi Anda di konsol Lambda. Di bagian Gambaran umum fungsi, pilih Tambah pemicu.

    Bagian ikhtisar fungsi dari konsol Lambda
  8. Pilih jenis pemicu.

  9. Konfigurasikan opsi yang diperlukan, lalu pilih Tambah.

Lambda mendukung opsi konfigurasi berikut untuk sumber peristiwa Amazon SQS:

Antrian SQS

Antrian Amazon SQS untuk membaca catatan dari.

Aktifkan pemicu

Status pemetaan sumber acara. Aktifkan pemicu dipilih secara default.

Ukuran batch

Jumlah maksimum catatan untuk dikirim ke fungsi di setiap batch. Untuk antrian standar, ini bisa mencapai 10.000 catatan. Untuk antrian FIFO, maksimum adalah 10. Untuk ukuran batch lebih dari 10, Anda juga harus mengatur batch window (MaximumBatchingWindowInSeconds) setidaknya 1 detik.

Konfigurasikan batas waktu fungsi Anda untuk memberikan waktu yang cukup untuk memproses seluruh kumpulan item. Jika item membutuhkan waktu lama untuk diproses, pilih ukuran batch yang lebih kecil. Ukuran batch yang besar dapat meningkatkan efisiensi beban kerja yang sangat cepat atau memiliki banyak overhead. Jika Anda mengonfigurasi konkurensi cadangan pada fungsi Anda, setel minimal lima eksekusi bersamaan untuk mengurangi kemungkinan kesalahan pelambatan saat Lambda memanggil fungsi Anda.

Lambda meneruskan semua catatan dalam batch ke fungsi dalam satu panggilan, selama ukuran total peristiwa tidak melebihi kuota ukuran payload pemanggilan untuk pemanggilan sinkron (6 MB). Baik Lambda dan Amazon SQS menghasilkan metadata untuk setiap catatan. Metadata tambahan ini dihitung terhadap ukuran muatan total dan dapat menyebabkan jumlah total catatan yang dikirim dalam batch menjadi lebih rendah dari ukuran batch yang dikonfigurasi. Bidang metadata yang dikirimkan Amazon SQS dapat bervariasi panjangnya. Untuk informasi selengkapnya tentang bidang metadata Amazon SQS, lihat dokumentasi operasi ReceiveMessageAPI di Referensi API Layanan Antrian Sederhana Amazon.

Jendela batch

Jumlah waktu maksimum untuk mengumpulkan rekaman sebelum memanggil fungsi, dalam hitungan detik. Ini hanya berlaku untuk antrian standar.

Jika Anda menggunakan jendela batch lebih dari 0 detik, Anda harus memperhitungkan peningkatan waktu pemrosesan dalam batas waktu visibilitas antrian Anda. Sebaiknya atur batas waktu visibilitas antrian Anda menjadi enam kali batas waktu fungsi Anda, ditambah nilai. MaximumBatchingWindowInSeconds Ini memungkinkan waktu untuk fungsi Lambda Anda memproses setiap batch peristiwa dan mencoba kembali jika terjadi kesalahan thrthrottling.

Ketika pesan tersedia, Lambda mulai memproses pesan dalam batch. Lambda mulai memproses lima batch sekaligus dengan lima pemanggilan fungsi Anda secara bersamaan. Jika pesan masih tersedia, Lambda menambahkan hingga 300 instance fungsi Anda dalam satu menit, hingga maksimum 1.000 instance fungsi. Untuk mempelajari lebih lanjut tentang penskalaan fungsi dan konkurensi, lihat Penskalaan fungsi Lambda.

Untuk memproses lebih banyak pesan, Anda dapat mengoptimalkan fungsi Lambda untuk throughput yang lebih tinggi. Untuk informasi selengkapnya, lihat Memahami cara AWS Lambda menskalakan dengan antrian standar Amazon SQS.

Konkurensi maksimum

Jumlah maksimum fungsi bersamaan yang dapat dipanggil sumber peristiwa. Untuk informasi selengkapnya, lihat Mengkonfigurasi konkurensi maksimum untuk sumber peristiwa Amazon SQS.

Kriteria filter

Tambahkan kriteria filter untuk mengontrol peristiwa yang dikirim Lambda ke fungsi Anda untuk diproses. Untuk informasi selengkapnya, lihat Pemfilteran acara Lambda.