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. Jika Anda mengganti nama langkah atau mengubah perilakunya saat eksekusi sedang berlangsung, eksekusi tersebut dapat gagal untuk melanjutkan 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 penelusuran 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. Dengan cara ini, Anda dapat 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 pemanggilan fungsi asinkron tanpa eksekusi yang tahan lama, Lambda tidak secara otomatis mencoba kembali eksekusi yang 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 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