View a markdown version of this page

Praktik terbaik untuk fungsi tahan lama Lambda - AWS Lambda

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

Praktik terbaik untuk fungsi tahan lama Lambda

Fungsi tahan lama menggunakan model eksekusi berbasis replay yang membutuhkan praktik pemrograman yang berbeda dari fungsi Lambda tradisional. Lihat Prakti k Terbaik di Panduan Pengembang SDK Eksekusi Tahan Lama untuk panduan tentang cara menulis dan menguji kode alur kerja yang tahan lama. AWS

Rekomendasi berikut adalah praktik terbaik untuk menerapkan, memanggil, dan memantau fungsi tahan lama Lambda.

Versi fungsi dan alias

Memanggil fungsi dengan nomor versi atau alias untuk menyematkan eksekusi ke versi kode tertentu. Pastikan versi kode baru dapat menangani status dari versi yang lebih lama. Jangan mengganti nama langkah atau mengubah perilakunya dengan cara yang merusak pemutaran ulang. Jika Anda mengganti nama langkah atau mengubah perilakunya saat eksekusi sedang berlangsung, eksekusi tersebut dapat gagal dilanjutkan atau menghasilkan hasil yang salah. Ini terjadi karena runtime tidak dapat lagi mencocokkan status tersimpan dengan definisi langkah yang diharapkan.

Memantau

Aktifkan logging terstruktur dengan ID eksekusi dan nama langkah. Siapkan CloudWatch alarm untuk tingkat kesalahan dan durasi eksekusi. Gunakan pelacakan untuk mengidentifikasi hambatan. Untuk panduan terperinci, lihat Pem antauan dan debugging.

Penanganan kesalahan

Selain mengonfigurasi strategi coba ulang untuk kegagalan sementara, konfigurasikan antrean huruf mati (DLQ) pada fungsi tahan lama Anda untuk menangkap peristiwa dari eksekusi yang gagal secara permanen. Ketika eksekusi tahan lama mencapai status terminal (FAILED, STOPPED, atau TIMED_OUT) setelah pemanggilan asinkron, Lambda mengirimkan peristiwa pemicu asli ke DLQ. Dengan cara ini, Anda dapat memeriksa, men-debug, dan secara opsional memproses ulang peristiwa yang gagal tanpa kehilangannya.

Untuk mengonfigurasi DLQ, atur DeadLetterConfig properti pada fungsi Anda ke antrian Amazon SQS atau topik Amazon SNS ARN. Untuk informasi selengkapnya, lihat Dead-letter antrian.

Ikuti praktik terbaik berikut untuk penanganan kesalahan dengan fungsi tahan lama:

  • Konfigurasikan DLQ untuk pemanggilan asinkron - Selalu lampirkan antrian huruf mati saat memanggil fungsi tahan lama secara asinkron. Tidak seperti fungsi Lambda standar, layanan tidak secara otomatis mencoba lagi eksekusi tahan lama pada kegagalan. DLQ yang dikonfigurasi dengan benar menangkap peristiwa yang menyebabkan eksekusi gagal secara permanen. Pastikan DLQ memiliki izin yang benar dan kapasitas yang cukup untuk menerima pesan.

  • Gunakan strategi coba lagi dalam langkah-langkah — Konfigurasikan strategi coba ulang eksplisit dengan mundur yang sesuai untuk kegagalan sementara. Untuk panduan mengonfigurasi percobaan ulang, lihat Percobaan ulang untuk fungsi tahan lama.

  • Gabungkan DLQ dengan EventBridge notifikasi — Gunakan EventBridge aturan untuk memperingatkan perubahan status FAILED, STOPED, dan TIMED_OUT untuk visibilitas real-time, dan gunakan DLQ untuk mempertahankan muatan peristiwa asli untuk analisis atau pemrosesan ulang nanti.

  • Memantau kedalaman DLQ — Buat CloudWatch alarm pada ApproximateNumberOfMessagesVisible metrik untuk DLQ Anda untuk mendeteksi ketika kegagalan menumpuk.

Sumber daya terkait