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 Praktik terbaik di Panduan Pengembang SDK Eksekusi AWS Tahan Lama untuk panduan tentang cara menulis dan menguji kode alur kerja yang tahan lama.

Rekomendasi berikut adalah praktik terbaik untuk menerapkan, menjalankan, 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 perilaku mereka dengan cara yang merusak pemutaran ulang.

Memantau

Aktifkan logging terstruktur dengan ID eksekusi dan nama langkah. Siapkan CloudWatch alarm untuk tingkat kesalahan dan durasi eksekusi. Gunakan tracing untuk mengidentifikasi kemacetan. Untuk panduan terperinci, lihat Monitoring dan debugging.

Penanganan kesalahan

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

Untuk mengonfigurasi DLQ, setel DeadLetterConfig properti pada fungsi Anda ke antrean Amazon SQS atau ARN topik Amazon SNS. Untuk informasi lebih lanjut, 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 menjalankan fungsi tahan lama secara asinkron. Tidak seperti fungsi Lambda standar, eksekusi tahan lama tidak dicoba ulang secara otomatis saat gagal, jadi DLQ adalah jaring pengaman Anda untuk menangkap peristiwa yang menyebabkan eksekusi gagal secara permanen.

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

  • Gabungkan DLQ dengan EventBridge notifikasi — Gunakan EventBridge aturan untuk memperingatkan perubahan status GAGAL, BERHENTI, dan TIMED_OUT untuk visibilitas waktu nyata, dan gunakan DLQ untuk mempertahankan muatan peristiwa asli untuk analisis atau pemrosesan ulang nanti.

  • Pantau kedalaman DLQ — Buat CloudWatch alarm pada ApproximateNumberOfMessagesVisible metrik agar DLQ Anda dapat mendeteksi saat kegagalan menumpuk.

Sumber daya terkait