Topik ini menjelaskan penyebab dan solusi untuk kesalahan "Invocation canceled by client".
Deskripsi masalah
FC Invoke End RequestId: 1-64263a4b-2cd7c98b677*********, Error: Invocation canceled by client (duration: 4912ms, maxMemoryUsage: 0.00MB)Penyebab
Klien yang memulai pemanggilan membatalkan permintaan tersebut. Akibatnya, eksekusi fungsi terganggu dan kesalahan dilaporkan.
Solusi
Ikuti langkah-langkah berikut untuk menyelesaikan masalah:
- Periksa durasi eksekusi fungsi ketika klien membatalkan permintaan berdasarkan log kesalahan.
Dalam contoh ini,
durasi: 4912msmenunjukkan bahwa fungsi berjalan selama sekitar 5 detik. - Tentukan apakah waktu eksekusi sesuai dengan harapan berdasarkan kebutuhan bisnis Anda.
- Jika durasi eksekusi sesuai dengan harapan, tingkatkan periode timeout klien. Untuk informasi lebih lanjut, lihat Durasi Eksekusi Sesuai Harapan.
- Jika durasi eksekusi tidak sesuai dengan harapan, periksa logika eksekusi fungsi berdasarkan log untuk mengidentifikasi bagian-bagian yang menyebabkan peningkatan durasi eksekusi. Untuk informasi lebih lanjut, lihat Durasi Eksekusi Tidak Sesuai Harapan.
Durasi eksekusi sesuai harapan
- Jika Anda memanggil fungsi menggunakan SDK atau Operasi API, disarankan untuk menetapkan periode timeout permintaan ke nilai yang lebih besar dari periode timeout yang dikonfigurasi untuk fungsi.
Sebagai contoh, jika Anda menggunakan bahasa Golang dan memanggil fungsi menggunakan Function Compute API, Anda dapat menetapkan periode timeout permintaan menggunakan properti Timeout di http.Client. Jika context.Context digunakan saat Anda memulai permintaan, Anda dapat menyesuaikan batas waktu atau periode timeout konteks tersebut.
- Jika Anda memanggil fungsi menggunakan layanan lain, Anda dapat memodifikasi periode timeout backend di konsol layanan tersebut.
Sebagai contoh, jika Anda menggunakan operasi API untuk memanggil fungsi di frontend, Anda dapat memodifikasi pengaturan timeout backend operasi API di konsol API Gateway. Untuk informasi lebih lanjut, lihat Buat API.
- Jika Anda memanggil fungsi di konsol, jangan klik Cancel Request untuk membatalkan permintaan atau menutup halaman web sebelum fungsi dieksekusi.
Durasi eksekusi tidak sesuai harapan
- Operasi I/O
Operasi I/O, terutama operasi I/O jaringan, adalah penyebab utama peningkatan latensi eksekusi. Disarankan untuk menambahkan log sebelum dan sesudah mengakses layanan eksternal guna memeriksa apakah waktu yang dibutuhkan untuk mengakses layanan eksternal normal.
- Operasi Komputasi
Sejumlah besar operasi komputasi juga dapat meningkatkan latensi. Disarankan untuk meningkatkan spesifikasi CPU.