Mengonfigurasi health check penampung (layanan)

Anda dapat mengonfigurasi pemeriksaan startup HTTP, TCP, dan gRPC, beserta dan pemeriksaan keaktifan gRPC untuk layanan Cloud Run baru dan yang sudah ada. Konfigurasi ini bervariasi, bergantung pada jenis pemeriksaan.

Perhatikan bahwa pemeriksaan {i>startup<i} TCP dikonfigurasi secara otomatis untuk sebuah layanan Cloud Run. Lihat Pemeriksaan startup TCP default untuk mengetahui detailnya.

Kasus penggunaan

Anda dapat mengonfigurasi dua jenis pemeriksaan health check:

  • Pemeriksaan keaktifan menentukan apakah penampung akan dimulai ulang atau tidak.

    • Dalam hal ini, memulai ulang container dapat meningkatkan ketersediaan layanan jika terjadi bug.
    • Pemeriksaan keaktifan dimaksudkan untuk memulai ulang setiap instance yang tidak dapat dipulihkan dengan cara lain. Kunci ini harus digunakan terutama untuk data yang tidak dapat dipulihkan kegagalan instance, misalnya, untuk menangkap deadlock saat layanan sedang berjalan, tetapi tidak dapat membuat progres.
  • Pemeriksaan startup menentukan apakah container telah dimulai dan siap untuk menerima traffic.

    • Saat Anda mengonfigurasi pemeriksaan startup, pemeriksaan keaktifan dinonaktifkan hingga pemeriksaan startup menentukan bahwa container dimulai, untuk mencegah gangguan pada startup layanan.
    • Pemeriksaan keaktifan sangat berguna jika Anda menggunakan pemeriksaan keaktifan memulai container, karena hal ini mencegah container tersebut dinonaktifkan sebelum container berjalan.

Perhatikan bahwa ketika layanan mengalami kegagalan pemeriksaan startup atau keaktifan berulang, Cloud Run membatasi mulai ulang instance untuk mencegah loop error yang tidak terkontrol.

Pemeriksaan {i>startup<i} TCP {i>default<i}

Pemeriksaan startup TCP dikonfigurasi secara otomatis untuk Cloud Run baru dengan nilai default. Pemeriksaan default setara dengan hal berikut:

startupProbe:
  tcpSocket:
    port: CONTAINER_PORT
  timeoutSeconds: 240
  periodSeconds: 240
  failureThreshold: 1

Ganti CONTAINER_PORT dengan port container yang ditetapkan untuk layanan Anda.

Anda dapat mengubah nilai default ini dengan mengikuti petunjuk di konfigurasi pemeriksaan di halaman ini.

Penagihan dan alokasi CPU

  • CPU dialokasikan untuk setiap pemeriksaan.
  • Semua pemeriksaan ditagih untuk konsumsi penggunaan CPU dan memori, tetapi tidak ada biaya berbasis permintaan.

Persyaratan dan perilaku pemeriksaan

Jenis Satelit Persyaratan Perilaku
Startup TCP Tidak ada Secara default, Cloud Run membuat koneksi TCP untuk membuka Soket TCP pada port yang ditentukan. Jika Cloud Run tidak dapat terhubung, berarti terjadi kegagalan.

Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), yang tidak boleh lebih dari 240 detik, container akan dimatikan. Lihat juga Default TCP.
Startup HTTP Buat endpoint health check HTTP
Gunakan HTTP/1
Setelah konfigurasi pemeriksaan, Cloud Run membuat permintaan GET HTTP ke endpoint health check layanan (misalnya, /ready). Respons apa pun antara 200 dan 400 dianggap berhasil, sedangkan yang lainnya menunjukkan kegagalan.

Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), yang tidak boleh lebih dari 240 detik, container akan dinonaktifkan.

Jika pemeriksaan startup HTTP berhasil dalam waktu yang ditentukan, dan Anda telah mengonfigurasi pemeriksaan keaktifan HTTP, pemeriksaan keaktifan HTTP akan dimulai.
Keaktifan HTTP Buat endpoint health check HTTP
Gunakan HTTP/1
Pemeriksaan keaktifan hanya dimulai setelah pemeriksaan startup berhasil. Setelah konfigurasi pemeriksaan, dan pemeriksaan startup berhasil, Cloud Run membuat permintaan GET HTTP ke endpoint health check layanan (misalnya, /health). Respons apa pun antara 200 dan 400 berhasil, sedangkan yang lainnya menunjukkan kegagalan.

Jika pemeriksaan keaktifan tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), penampung dinonaktifkan menggunakan sinyal SIGKILL. Semua permintaan tersisa yang masih ditayangkan oleh penampung dihentikan dengan kode status HTTP 503. Setelah container dinonaktifkan, penskalaan otomatis Cloud Run akan memulai instance container baru.
Startup gRPC Menerapkan protokol Health Check gRPC di layanan Cloud Run Anda Jika pemeriksaan startup tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), yang tidak boleh melebihi 240 detik, container akan dinonaktifkan.
Keaktifan gRPC Menerapkan protokol Health Check gRPC di layanan Cloud Run Anda Jika Anda mengonfigurasi pemeriksaan startup gRPC, pemeriksaan keaktifan akan dimulai hanya setelah pemeriksaan startup berhasil.

Setelah pemeriksaan keaktifan dikonfigurasi, dan pemeriksaan startup berhasil, Cloud Run akan membuat permintaan health check ke layanan.

Jika pemeriksaan keaktifan tidak berhasil dalam waktu yang ditentukan (failureThreshold * periodSeconds), penampung akan dimatikan menggunakan sinyal SIGKILL. Setelah container dinonaktifkan, penskalaan otomatis Cloud Run akan memulai instance container baru.

Mengonfigurasi pemeriksaan

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 mengonfigurasi pemeriksaan HTTP, TCP, dan gRPC menggunakan Konsol Google Cloud, YAML, atau Terraform:

Konsol

Penting: Jika Anda mengonfigurasi layanan Cloud Run untuk HTTP pemeriksaan, Anda juga harus menambahkan endpoint health check HTTP di layanan Anda kode untuk merespons pengintaian. Jika Anda mengonfigurasi pemeriksaan gRPC, Anda harus juga menerapkan Protokol Health Check gRPC di layanan Cloud Run Anda.

  1. Pada konsol Google Cloud, buka halaman Cloud Run.

    Buka Cloud Run

  2. Untuk layanan baru, luaskan Container, volume, networking, keamanan untuk menampilkan health check lainnya. Untuk layanan yang ada, klik layanan yang ingin Anda konfigurasi, lalu klik Edit and deploy untuk menampilkan opsi health check.

  3. Di bagian Penampung, buka Health check lalu klik Tambahkan health check untuk membuka konfigurasi Tambahkan health check .

  4. Dari menu Pilih jenis health check, pilih jenis health check yang ingin Anda tambahkan, misalnya, startup atau keaktifan.

  5. Dari menu Pilih jenis pemeriksaan, pilih jenis pemeriksaan yang ingin Anda gunakan, misalnya, HTTP atau gRPC. Ini akan menampilkan konfigurasi satelit formulir.

  6. Perlu diketahui bahwa konfigurasi pemeriksaan bervariasi menurut jenis pemeriksaan. Konfigurasi setelan satelit:

    • Jika Anda menggunakan pemeriksaan HTTP:
      • Pastikan layanan Anda menggunakan HTTP/1 (default Cloud Run), bukan HTTP/2.
      • Gunakan kolom Path untuk menentukan jalur relatif ke endpoint, misalnya, /.
      • Centang kotak Header HTTP untuk menentukan header kustom opsional. Kemudian tentukan nama header di kolom Name dan nilai header di kolom Value. Klik Tambahkan header HTTP untuk menentukan header lainnya.
    • Untuk Port, tentukan port container yang digunakan untuk layanan Anda.
    • Untuk Penundaan awal, tentukan jumlah detik untuk menunggu setelah penampung telah dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.
    • Untuk Period, tentukan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
    • Untuk Batas kegagalan, tentukan frekuensi percobaan ulang pemeriksaan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
    • Untuk Timeout, tentukan jumlah detik untuk menunggu hingga pemeriksaan waktu posisi-posisi ini. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
  7. Klik Add untuk menambahkan nilai minimum baru

YAML

Penting: Jika Anda mengonfigurasi layanan Cloud Run untuk HTTP Anda juga harus menambahkan endpoint di layanan Anda kode untuk merespons pengintaian. Jika Anda mengonfigurasi pemeriksaan gRPC, Anda harus juga menerapkan Protokol Health Check gRPC di layanan Cloud Run Anda.

Startup TCP

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang ada, download konfigurasi YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut startupProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
     name: SERVICE
    spec:
     template:
       metadata:
       spec:
         containers:
         - image: IMAGE_URL
           startupProbe:
             tcpSocket:
               port: CONTAINER_PORT
             initialDelaySeconds: DELAY
             timeoutSeconds: TIMEOUT
             failureThreshold: THRESHOLD
             periodSeconds: PERIOD

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • (OPSIONAL) CONTAINER_PORT harus ditetapkan ke port container yang digunakan untuk layanan Anda.
    • DELAY dengan jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.
    • (OPSIONAL) TIMEOUT dengan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
    • THRESHOLD dengan frekuensi percobaan ulang pemeriksaan menonaktifkan container. Nilai defaultnya adalah 3.
    • PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan nilai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
  3. Buat atau update layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Startup HTTP

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang ada, download konfigurasi YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Pastikan layanan Anda menggunakan HTTP/1 (default Cloud Run), bukan HTTP/2.

  3. Konfigurasikan atribut startupProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
        spec:
          containers:
          - image: IMAGE_URL
            startupProbe:
              httpGet:
                path: PATH
                port: CONTAINER_PORT
                httpHeaders:
                  - name: HEADER_NAME
                    value: HEADER_VALUE
              initialDelaySeconds: DELAY
              timeoutSeconds: TIMEOUT
              failureThreshold: THRESHOLD
              periodSeconds: PERIOD

    ganti

    • SERVICE dengan nama layanan Cloud Run Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATH dengan jalur relatif ke endpoint HTTP, misalnya, /ready.
    • (OPSIONAL) CONTAINER_PORT harus ditetapkan ke port container yang digunakan untuk layanan Anda.
    • (OPSIONAL) httpHeaders dapat digunakan untuk menyediakan beberapa header kustom atau berulang menggunakan kolom HEADER_NAME dan HEADER_VALUE seperti yang ditunjukkan.
    • (OPSIONAL) DELAY dengan jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.
    • (OPSIONAL) TIMEOUT dengan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
    • (OPSIONAL) THRESHOLD dengan berapa kali percobaan ulang penyelidikan dilakukan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
    • (OPSIONAL) PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan mulai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
  4. Buat atau update layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Keaktifan HTTP

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang ada, download konfigurasi YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Pastikan layanan Anda menggunakan HTTP/1 (default Cloud Run), bukan HTTP/2.

  3. Konfigurasikan atribut livenessProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE
      spec:
        template:
          metadata:
          spec:
            containers:
            - image: IMAGE_URL
              livenessProbe:
                httpGet:
                  path: PATH
                  port: CONTAINER_PORT
                  httpHeaders:
                    - name: HEADER_NAME
                      value: HEADER_VALUE
                initialDelaySeconds: DELAY
                timeoutSeconds: TIMEOUT
                failureThreshold: THRESHOLD
                periodSeconds: PERIOD

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATH dengan jalur relatif ke endpoint HTTP, misalnya, /ready.
    • (OPSIONAL) CONTAINER_PORT harus ditetapkan ke port container yang digunakan untuk layanan Anda.
    • (OPSIONAL) httpHeaders dapat digunakan untuk menyediakan beberapa header kustom atau berulang menggunakan kolom HEADER_NAME dan HEADER_VALUE seperti yang ditunjukkan.
    • (OPSIONAL) DELAY dengan jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.
    • (OPSIONAL) TIMEOUT dengan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 3600. Nilai defaultnya adalah 1.
    • (OPSIONAL) THRESHOLD dengan berapa kali percobaan ulang penyelidikan dilakukan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
    • (OPSIONAL) PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan mulai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.
  4. Buat atau update layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Startup gRPC

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang ada, download konfigurasi YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut startupProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE
      spec:
        template:
          metadata:
          spec:
            containers:
            - image: IMAGE_URL
              startupProbe:
                grpc:
                  service: GRPC_SERVICE
                  port: CONTAINER_PORT
                initialDelaySeconds: DELAY
                timeoutSeconds: TIMEOUT
                failureThreshold: THRESHOLD
                periodSeconds: PERIOD

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • GRPC_SERVICE dengan nama layanan gRPC yang akan dikirimi pemeriksaan kesehatan.
    • (OPSIONAL) CONTAINER_PORT harus ditetapkan ke port container yang digunakan untuk layanan Anda.
    • (OPSIONAL) DELAY dengan jumlah detik untuk menunggu setelah penampung telah dimulai sebelum melakukan pemeriksaan pertama. Tentukan mulai detik hingga 240 detik. Nilai default-nya adalah 0 detik.
    • (OPSIONAL) WAKTU TUNGGU dengan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 240. Nilai defaultnya adalah 1.
    • (OPSIONAL) THRESHOLD dengan berapa kali percobaan ulang penyelidikan dilakukan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
    • (OPSIONAL) PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan mulai dari 1 detik hingga 240 detik. Nilai default-nya adalah 10 detik.
  3. Buat atau update layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Keaktifan gRPC

  1. Jika Anda membuat layanan baru, lewati langkah ini. Jika Anda mengupdate layanan yang ada, download konfigurasi YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Konfigurasikan atribut livenessProbe seperti yang ditunjukkan berikut:

    apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
        name: SERVICE
      spec:
        template:
          metadata:
          spec:
            containers:
            - image: IMAGE_URL
              livenessProbe:
                grpc:
                  port: CONTAINER_PORT
                  service: GRPC_SERVICE
                initialDelaySeconds: DELAY
                timeoutSeconds: TIMEOUT
                failureThreshold: THRESHOLD
                periodSeconds: PERIOD

    Ganti

    • SERVICE dengan nama layanan Cloud Run Anda.
    • IMAGE_URL dengan referensi ke image container, misalnya, us-docker.pkg.dev/cloudrun/container/hello:latest. Jika Anda menggunakan Artifact Registry, repositori REPO_NAME harus sudah dibuat. URL memiliki bentuk LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • (OPSIONAL) CONTAINER_PORT harus ditetapkan ke port container yang digunakan untuk layanan Anda.
    • GRPC_SERVICE dengan nama layanan gRPC yang akan dikirimi pemeriksaan kesehatan.
    • (OPSIONAL) DELAY dengan jumlah detik untuk menunggu setelah container dimulai sebelum melakukan pemeriksaan pertama. Tentukan nilai dari 0 detik hingga 240 detik. Nilai default-nya adalah 0 detik.
    • (OPSIONAL) TIMEOUT dengan jumlah detik untuk menunggu hingga waktu pemeriksaan habis. Nilai ini tidak boleh melebihi nilai yang ditentukan untuk periodSeconds. Tentukan nilai dari 1 hingga 3600. Nilai defaultnya adalah 1.
    • (OPSIONAL) THRESHOLD dengan berapa kali percobaan ulang penyelidikan dilakukan sebelum menonaktifkan container. Nilai defaultnya adalah 3.
    • (OPSIONAL) PERIOD dengan periode (dalam detik) untuk melakukan pemeriksaan. Misalnya, 2 melakukan pemeriksaan setiap 2 detik. Tentukan mulai dari 1 detik hingga 3600 detik. Nilai default-nya adalah 10 detik.
  3. Buat atau update layanan menggunakan perintah berikut:
    gcloud run services replace service.yaml

Terraform

Penting: Jika Anda mengonfigurasi layanan Cloud Run untuk HTTP Anda juga harus menambahkan endpoint di layanan kode untuk merespons pengintaian. Jika Anda mengonfigurasi pemeriksaan gRPC, Anda harus juga menerapkan Protokol Health Check gRPC di layanan Cloud Run Anda.

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

Startup TCP

Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        tcp_socket {
          port = 8080
        }
      }
    }
  }
}

Startup HTTP

Pastikan layanan Anda menggunakan HTTP/1 (default Cloud Run), bukan HTTP/2.

Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

Keaktifan HTTP

Pastikan layanan Anda menggunakan HTTP/1 (default Cloud Run), bukan HTTP/2.

Konfigurasikan layanan Cloud Run dengan atribut liveness_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        http_get {
          path = "/"
          # Custom headers to set in the request
          # https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service#http_headers
          http_headers {
            name  = "Access-Control-Allow-Origin"
            value = "*"
          }
        }
      }
    }
  }
}

Startup gRPC

Konfigurasikan layanan Cloud Run dengan atribut startup_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      startup_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        grpc {
          # Note: Change to the name of your pre-existing grpc health status service
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

Keaktifan gRPC

Konfigurasikan layanan Cloud Run dengan atribut liveness_probe seperti yang ditunjukkan:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-healthcheck"
  location = "us-central1"

  template {
    containers {
      # Note: Change to the name of your image
      image = "us-docker.pkg.dev/cloudrun/container/hello"

      liveness_probe {
        failure_threshold     = 5
        initial_delay_seconds = 10
        timeout_seconds       = 3
        period_seconds        = 3

        # Note: Change to the name of your pre-existing grpc health status service
        grpc {
          service = "grpc.health.v1.Health"
        }
      }
    }
  }
}

Membuat endpoint health check HTTP

Jika mengonfigurasi layanan Cloud Run untuk pemeriksaan startup HTTP atau pemeriksaan keaktifan, Anda perlu menambahkan endpoint dalam kode layanan untuk merespons pemeriksaan tersebut. Endpoint dapat memiliki nama apa pun yang Anda inginkan, misalnya, /startup atau /ready, tetapi nama tersebut harus cocok dengan nilai yang Anda tentukan untuk path dalam konfigurasi pemeriksaan. Misalnya, jika Anda menentukan /ready untuk pemeriksaan startup HTTP, tentukan path dalam konfigurasi pemeriksaan Anda seperti yang ditunjukkan di bawah ini:

startupProbe:
  httpGet:
    path: /ready

Endpoint HTTP Healthcheck dapat diakses secara eksternal dan mengikuti prinsip yang sama seperti endpoint layanan HTTP lainnya yang diekspos secara eksternal.