Waktu tunggu fungsi

Jika fungsi berjalan terlalu lama, sistem akan mengambil langkah-langkah untuk menghentikan atau melakukan throttle. Periode waktu tunggu ini ditetapkan secara default ke 60 detik, tetapi Anda dapat memperpanjang atau menguranginya saat men-deploy fungsi:

  • Di Cloud Functions (generasi ke-1), durasi waktu tunggu maksimum adalah sembilan menit (540 detik).
  • Di Cloud Functions (generasi ke-2), durasi waktu tunggu maksimum adalah 60 menit (3.600 detik) untuk fungsi HTTP dan 9 menit (540 detik) untuk fungsi yang dikendalikan oleh peristiwa.

Saat eksekusi fungsi mencapai waktu tunggunya, respons sistem bergantung pada apakah fungsi tersebut generasi ke-1 atau fungsi generasi ke-2.

  • Generasi ke-1: Pesan respons dengan status error HTTP, umumnya 408, segera ditampilkan ke pemanggil; eksekusi fungsi dihentikan.
  • Generasi ke-2: Pesan respons dengan status error HTTP 504 akan segera ditampilkan ke pemanggil. Instance fungsi mungkin dibatasi, tetapi terus beroperasi hingga keluar dengan sendirinya. Pesan respons apa pun yang dihasilkan oleh fungsi akan dihapus dan tidak ditampilkan ke pemanggil.

Perilaku fungsi generasi ke-2 ini dapat menyebabkan efek samping yang tidak terduga. Gejala umumnya adalah munculnya pekerjaan dan log dari satu permintaan "bocor" ke permintaan berikutnya. Untuk menghindarinya, cegah waktu tunggu dalam fungsi Anda dengan teknik berikut:

  1. Tetapkan waktu tunggu yang lebih tinggi dari waktu eksekusi fungsi yang diharapkan.
  2. Melacak jumlah waktu yang tersisa selama eksekusi. Kemudian lakukan pembersihan dan kembali lebih awal.

Setel durasi waktu tunggu

Anda dapat menetapkan durasi waktu tunggu fungsi saat deployment menggunakan Google Cloud CLI atau Google Cloud Console.

gcloud

Jika Anda men-deploy menggunakan gcloud CLI, gunakan flag --timeout:

gcloud functions deploy YOUR_FUNCTION_NAME --timeout=TIMEOUT_DURATION ...

Untuk mengedit durasi waktu tunggu yang ada dengan Google Cloud CLI, deploy ulang fungsi dengan nilai waktu tunggu yang baru.

Konsol

Untuk menetapkan durasi waktu tunggu selama pembuatan fungsi di Google Cloud Console:

  1. Buka halaman Ringkasan Cloud Functions di Google Cloud Console.
  2. Klik Create function.
  3. Lengkapi kolom wajib isi untuk fungsi Anda.
  4. Luaskan bagian Runtime, build... di akhir halaman, lalu klik tab Runtime.
  5. Di kolom Waktu tunggu, masukkan jumlah detik.

    Untuk mengedit durasi waktu tunggu yang ada di Google Cloud Console, klik nama fungsi di halaman ringkasan fungsi untuk membuka halaman detailnya. Pada halaman detail, klik Edit, luaskan bagian Runtime, build..., lalu klik tab Runtime. mengedit nilai di kolom Timeout secara langsung.