Fungsi Lambda mengembalikan batas waktu bahkan setelah mendapatkan respons

Kami memiliki fungsi AWS lambda berbasis java yang dipanggil melalui API Gateway sekitar 10-15 kali sehari, menurut saya sangat sedikit.

Konfigurasi Lambda memiliki memori 1024 MB dan batas waktu habis 15 detik. Namun sejak sekitar seminggu terakhir, fungsi lambda mati bahkan setelah mendapat respons. Dan kejadian ini tidak seragam. Itu sporadis. Dan akhirnya dijalankan secara normal setelah beberapa waktu.

Kami telah mencoba mengoptimalkan kode dan tidak memerlukan waktu lebih dari ~8 detik untuk mengeksekusinya. Berharap menemukan solusi untuk ini. Beri tahu saya jika diperlukan info lebih lanjut.

Terima kasih sebelumnya.

Masalahnya mirip dengan pertanyaan ini: Waktu fungsi AWS Lambda habis

Satu-satunya perbedaan adalah teknologi yang digunakan: Pertanyaan di atas menggunakan nodeJS dan kami menggunakan Java

--Update: Satu hal lagi yang saya perhatikan adalah ketika API dipukul setelah lama tidak digunakan, dibutuhkan lebih banyak waktu untuk dieksekusi dibandingkan ketika Anda menekannya secara berurutan. Saya memeriksa log dan ketika saya menekannya untuk pertama kali, dibutuhkan sekitar 7-8 detik untuk mengeksekusinya dan setelah 2 pukulan berturut-turut, waktu respons berkurang menjadi hanya 2 detik.. Sangat aneh...


person User-8017771    schedule 08.01.2018    source sumber
comment
waktu yang Anda sampaikan hanya untuk waktu yang dibutuhkan oleh ekspresi Lambda atau seluruh API Anda?   -  person Nikhil Pareek    schedule 08.01.2018
comment
@NikhilPareek Hanya lambda.. Bukan API   -  person User-8017771    schedule 08.01.2018


Jawaban (1)


Anda sepertinya mengalami masalah terkait pemanasan di gateway lambda/api. Sudah ada beberapa orang yang mengeluhkan hal ini.

Ada beberapa solusi yang dapat Anda lakukan untuk menjaga lambda tetap hangat, misalnya pemicu.

Saya memeriksa log dan ketika saya menekannya untuk pertama kali, dibutuhkan sekitar 7-8 detik untuk mengeksekusinya dan setelah 2 pukulan berturut-turut, waktu respons berkurang menjadi hanya 2 detik.. Sangat aneh...

Ini karena Anda memiliki lambda yang hangat, oleh karena itu tidak perlu membuat yang baru.

person dege    schedule 08.01.2018
comment
Ya, itu mungkin terkait dengan pemanasan pada fungsi lambda. Namun, masalah pertama saya: Tetapi sejak sekitar seminggu terakhir, fungsi lambda mati bahkan setelah mendapat respons. Dan kejadian ini tidak seragam. Itu sporadis. Dan akhirnya dijalankan secara normal setelah beberapa waktu. Adakah yang tahu mengapa hal ini terjadi? - person User-8017771; 08.01.2018
comment
tbh, ini skenario yang aneh, apakah Anda memperhatikan waktu ketika batas waktu dicatat? juga memori apa yang Anda pilih untuk lambda? - person dege; 08.01.2018
comment
Memori yang dipilih adalah 1024 MB. Batas waktu yang saya periksa dari log di cloud watch. Pada dasarnya ketika permintaan dikirim ke fungsi lambda, ada permintaan awal yang dicatat. Dan saya telah menambahkan logger di akhir eksekusi untuk memeriksa apakah respons diterima atau tidak. Dan logger ini masuk ke dalam jam tangan Cloud. Namun segera setelah ini terjadi, waktu permintaan habis. Batas waktu yang ditetapkan adalah 15 detik - person User-8017771; 08.01.2018
comment
Tampaknya kasusnya aneh, lambda seharusnya tidak memberikan batas waktu jika respons dikirimkan - person dege; 08.01.2018
comment
Tepat sekali.. Itu juga pemikiran saya.. Tapi Anda bisa melihat ini adalah masalah serupa: stackoverflow.com/questions/40776264/ di mana ada snapshot yang diberikan juga - person User-8017771; 09.01.2018