Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memahami perilaku coba lagi di Lambda
Ketika Anda memanggil fungsi secara langsung, Anda menentukan strategi untuk menangani kesalahan yang terkait dengan kode fungsi Anda. Lambda tidak secara otomatis mencoba lagi jenis kesalahan ini atas nama Anda. Untuk mencoba lagi, Anda dapat memanggil ulang fungsi secara manual, mengirim peristiwa yang gagal ke antrian untuk debugging, atau mengabaikan kesalahan. Kode fungsi Anda mungkin telah berjalan sepenuhnya, sebagian, atau tidak sama sekali. Jika Anda mencoba lagi, pastikan bahwa kode fungsi Anda dapat menangani kejadian yang sama beberapa kali tanpa menyebabkan transaksi duplikat atau efek samping yang tidak diinginkan lainnya.
Saat Anda mengaktifkan suatu fungsi secara tidak langsung, Anda perlu menyadari perilaku dari invoker dan layanan apa pun yang dihadapi permintaan selama pelaksanaannya. Ini termasuk skenario berikut.
-
Invokasi asinkron – Lambda mencoba kembali kesalahan fungsi dua kali. Jika fungsi tidak memiliki kapasitas yang cukup untuk menangani semua permintaan yang masuk, peristiwa mungkin menunggu dalam antrian selama berjam-jam untuk dikirim ke fungsi. Anda dapat mengonfigurasikan antrean dead-letter di fungsi untuk menangkap peristiwa yang tidak berhasil diproses. Untuk informasi selengkapnya, lihat Bagaimana Lambda menangani pemanggilan asinkron.
-
Pemetaan sumber peristiwa – Pemetaan sumber peristiwa yang membaca dari aliran mencoba kembali seluruh batch item. Kesalahan berulang memblokir pemrosesan shard terdampak hingga kesalahan diselesaikan atau item kedaluwarsa. Untuk mendeteksi shard yang terhambat, Anda dapat memantau metrik Usia Iterator.
Untuk pemetaan sumber peristiwa yang membaca dari antrean, Anda menentukan lama waktu antara percobaan ulang dan destinasi untuk peristiwa yang gagal dengan mengonfigurasikan waktu habis tampilan dan kebijakan redrive pada antrean sumber. Untuk informasi selengkapnya, lihat Bagaimana Lambda memproses catatan dari sumber acara berbasis streaming dan antrian dan topik khusus layanan di bawah Memanggil Lambda dengan acara dari layanan lain AWS.
-
AWS layanan — AWS layanan dapat memanggil fungsi Anda secara sinkron atau asinkron. Untuk invokasi sinkron, layanan memutuskan apakah akan mencoba kembali. Misalnya, operasi batch Amazon S3 mencoba kembali operasi jika fungsi Lambda mengembalikan kode respons
TemporaryFailure
. Layanan yang meminta proxy dari pengguna atau klien hulu mungkin memiliki strategi coba lagi atau dapat menyampaikan respons kesalahan kembali ke pemohon. Misalnya, API Gateway selalu menyampaikan respons kesalahan kembali ke pemohon.Untuk pemanggilan asinkron, logika coba lagi sama terlepas dari sumber pemanggilannya. Secara default, Lambda mencoba ulang pemanggilan asinkron yang gagal hingga dua kali. Untuk informasi selengkapnya, lihat Bagaimana Lambda menangani kesalahan dan mencoba ulang dengan pemanggilan asinkron.
-
Akun dan klien lain – Saat Anda memberikan akses ke akun lain, Anda dapat menggunakan kebijakan berbasis sumber daya untuk membatasi layanan atau sumber daya yang dapat mereka konfigurasikan untuk mengaktifkan fungsi Anda. Untuk melindungi fungsi Anda dari kelebihan beban, pertimbangkan untuk meletakkan API lapisan di depan fungsi Anda dengan Amazon API Gateway.
Untuk membantu Anda mengatasi kesalahan dalam aplikasi Lambda, Lambda terintegrasi dengan layanan seperti Amazon dan. CloudWatch AWS X-Ray Anda dapat menggunakan kombinasi log, metrik, alarm, dan penelusuran untuk mendeteksi dan mengidentifikasi masalah dengan cepat dalam kode fungsiAPI, atau sumber daya lain yang mendukung aplikasi Anda. Untuk informasi selengkapnya, lihat Pemantauan dan pemecahan masalah fungsi Lambda.