Pelajari cara menyetel waktu saat respons untuk permintaan harus ditampilkan
oleh layanan penayangan Knative Anda. Jika respons tidak ditampilkan dalam
waktu yang ditentukan, permintaan akan berakhir dan error 504
akan ditampilkan.
Batas waktu tunggu
Batas waktu maksimum berbeda-beda berdasarkan versi cluster GKE Anda.
Versi GKE | Batas default | Batas waktu tunggu maksimum |
---|---|---|
0.16.0-gke.1 dan yang lebih baru | 300 detik | 24 jam |
0.15.0-gke.3 dan yang lebih lama | 300 detik | 900 detik |
Selain mengubah waktu tunggu permintaan penayangan Knative, Anda harus memeriksa framework bahasa Anda untuk mengetahui apakah framework memiliki setelan waktu tunggu permintaannya sendiri yang juga harus diperbarui.
Menyetel dan memperbarui waktu tunggu permintaan
Setiap perubahan konfigurasi akan menghasilkan revisi baru. Revisi selanjutnya juga akan otomatis mendapatkan setelan konfigurasi ini, kecuali jika Anda melakukan pembaruan eksplisit untuk mengubahnya.
Anda dapat menetapkan waktu tunggu permintaan menggunakan Google Cloud konsol, Google Cloud CLI, atau file YAML saat men-deploy layanan baru atau memperbarui layanan yang sudah ada dan men-deploy revisi:
Konsol
Buka Knative serving di konsol Google Cloud :
Klik Buat Layanan jika Anda mengonfigurasi layanan baru yang akan di-deploy. Jika Anda mengonfigurasi layanan yang sudah ada, klik layanan tersebut, lalu klik Edit & Deploy Revisi Baru.
Di bagian Setelan lanjutan, klik Penampung.
Di kolom Waktu tunggu permintaan, masukkan nilai waktu tunggu yang ingin Anda gunakan. Nilai yang Anda tentukan harus kurang dari batas waktu untuk versi GKE cluster.
Klik Berikutnya untuk melanjutkan ke bagian berikutnya.
Di bagian Konfigurasi cara layanan ini dipicu, pilih konektivitas yang ingin Anda gunakan untuk memanggil layanan.
Klik Create untuk men-deploy image ke layanan Knative dan tunggu hingga deployment selesai.
Command line
Untuk layanan yang ada, tetapkan waktu tunggu permintaan dengan menjalankan perintah
gcloud run services update
dengan parameter--timeout
:gcloud run services update SERVICE --timeout TIMEOUT
Ganti:
- SERVICE dengan nama layanan Anda.
- TIMEOUT dengan waktu yang diinginkan, menggunakan nilai bilangan bulat dalam detik, atau
nilai durasi absolut,
misalnya
1m20s
yaitu 1 menit, 20 detik. Nilai yang Anda tentukan harus kurang dari batas waktu untuk versi GKE cluster. Tentukan0
untuk menyetel waktu tunggu ke nilai default.
Untuk layanan baru, tetapkan waktu tunggu permintaan dengan menjalankan perintah
gcloud run deploy
dengan parameter--timeout
:gcloud run deploy SERVICE --image=IMAGE_URL --timeout TIMEOUT
Ganti:
- SERVICE dengan nama layanan Anda.
- IMAGE_URL dengan referensi ke image container,
misalnya,
gcr.io/cloudrun/hello
. - TIMEOUT dengan waktu yang diinginkan, menggunakan nilai bilangan bulat dalam detik, atau
nilai durasi absolut,
misalnya
1m20s
yaitu 1 menit, 20 detik. Nilai yang Anda tentukan harus kurang dari batas waktu untuk versi GKE cluster. Tentukan0
untuk menyetel waktu tunggu ke nilai default.
YAML
Anda dapat mendownload konfigurasi layanan yang ada ke dalam
file YAML dengan perintah gcloud run services describe
menggunakan tanda
--format=export
.
Kemudian, Anda dapat mengubah file YAML tersebut dan men-deploy
perubahan tersebut dengan perintah gcloud run services replace
.
Anda harus memastikan bahwa Anda hanya mengubah atribut yang ditentukan.
Download konfigurasi layanan Anda ke file bernama
service.yaml
di ruang kerja lokal:gcloud run services describe SERVICE --format export > service.yaml
Ganti SERVICE dengan nama layanan Knative serving Anda.
Di file lokal Anda, perbarui atribut
timeoutSeconds
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Ganti:
- SERVICE dengan nama layanan Knative serving Anda
- IMAGE_URL dengan referensi ke image container,
misalnya,
gcr.io/cloudrun/hello
. - TIMEOUT dengan waktu tunggu yang diinginkan, dalam satuan detik.
Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:
gcloud run services replace service.yaml