Configura i controlli di integrità dei container (servizi)

Puoi configurare i controlli di avvio HTTP, TCP e gRPC, nonché i controlli di attività HTTP e gRPC per i servizi Cloud Run nuovi ed esistenti. La configurazione varia a seconda del tipo di sonda.

Tieni presente che un probe di avvio TCP viene configurato automaticamente per un nuovo servizio Cloud Run. Per maggiori dettagli, consulta la sezione La sonda di avvio TCP predefinita.

Casi d'uso

Puoi configurare due tipi di sonde di controllo di integrità:

  • I probe di attività determinano se riavviare un container.

    • In questo caso, il riavvio di un contenitore può aumentare la disponibilità del servizio in caso di bug.
    • I probe di attività hanno lo scopo di riavviare singole istanze che non possono essere recuperate in nessun altro modo. Devono essere utilizzati principalmente per i fallimenti delle istanze non recuperabili, ad esempio per rilevare un deadlock in cui un servizio è in esecuzione, ma non riesce a progredire. Puoi richiedere un probe di attività per ogni contenitore utilizzando i criteri dell'organizzazione personalizzati.
  • I probe di avvio determinano se il container è stato avviato ed è pronto ad accettare il traffico.

    • Quando configuri un probe di avvio, i controlli di attività vengono disattivati finché il probe di avvio non determina che il contenitore è avviato, per evitare interferenze con l'avvio del servizio.
    • I probe di avvio sono particolarmente utili se utilizzi i controlli di attività su container con avvio lento, perché ne impediscono l'arresto prematuro prima che i container siano operativi.

Tieni presente che quando un servizio presenta ripetuti errori di avvio o dei probe di attività, Cloud Run limita i riavvii dell'istanza per evitare loop di arresti anomali incontrollati.

Il probe di avvio TCP predefinito

Un probe di avvio TCP viene configurato automaticamente per un nuovo servizio Cloud Run con valori predefiniti. Il probe predefinito è equivalente al seguente:

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

Sostituisci CONTAINER_PORT con la porta del contenitore impostata per il tuo servizio.

Puoi modificare questi valori predefiniti seguendo le istruzioni riportate nella sezione Configurazione del probe di questa pagina.

Fatturazione e allocazione della CPU

  • La CPU è allocata per ogni probe.
  • Per tutti i probe viene addebitato il consumo di CPU e memoria, ma non viene addebitato alcun costo in base alle richieste.

Requisiti e comportamento delle sonde

Tipo di sonda Requisiti Comportamento
Avvio TCP Nessuno Per impostazione predefinita, Cloud Run stabilisce una connessione TCP per aprire la socket TCP sulla porta specificata. Se Cloud Run non riesce a stabilire una connessione, indica un errore.

Se un controllo di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, il contenitore viene arrestato. Consulta anche i valori predefiniti TCP.
Avvio HTTP Crea un endpoint di controllo di integrità HTTP
Utilizza HTTP/1
Dopo la configurazione del controllo, Cloud Run invia una richiesta GET HTTP all'endpoint di controllo di integrità del servizio (ad esempio /ready). Qualsiasi risposta compresa tra 200 e 400 indica un buon esito, mentre tutte le altre indicano un errore.

Se un controllo di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, il contenitore viene arrestato.

Se il controllo di avvio HTTP va a buon fine entro il tempo specificato e hai configurato un controllo di attività HTTP, viene avviato il controllo di attività HTTP.
Attualità HTTP Crea un endpoint di controllo di integrità HTTP
Utilizza HTTP/1
Il probe di attivazione viene avviato solo dopo il completamento del probe di avvio. Dopo la configurazione del probe e se qualsiasi probe di avvio va a buon fine, Cloud Run invia una richiesta GET HTTP all'endpoint di controllo di integrità del servizio (ad esempio /health). Qualsiasi risposta compresa tra 200 e 400 indica un esito positivo, mentre tutte le altre indicano un errore.

Se un probe di verifica della presenza non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), il contenitore viene arrestato utilizzando un segnale SIGKILL. Eventuali richieste rimanenti ancora in esecuzione dal contenitore vengono interrotte con il codice di stato HTTP 503. Dopo l'arresto del contenitore, l'autoscaling di Cloud Run avvia una nuova istanza container.
Avvio di gRPC Implementa il protocollo di controllo dell'integrità gRPC nel tuo servizio Cloud Run Se un probe di avvio non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), che non può superare i 240 secondi, il contenitore viene arrestato.
Attività gRPC Implementa il protocollo di controllo dell'integrità gRPC nel tuo servizio Cloud Run Se configuri un probe di avvio gRPC, il probe di attività si avvia solo dopo il completamento del probe di avvio.

Dopo aver configurato il probe di attività e aver completato qualsiasi probe di avvio, Cloud Run invia una richiesta di controllo di integrità al servizio.

Se un probe di attività non va a buon fine entro il tempo specificato (failureThreshold * periodSeconds), il contenitore viene arrestato utilizzando un segnale SIGKILL. Dopo l'arresto del contenitore, l'autoscaling di Cloud Run avvia una nuova istanza container.

Configura i probe

Qualsiasi modifica alla configurazione comporta la creazione di una nuova revisione. Anche le revisioni successive acquisiranno automaticamente questa impostazione di configurazione, a meno che non apporti aggiornamenti espliciti per modificarla.

Puoi configurare i controlli HTTP, TCP e gRPC utilizzando la console Google Cloud, YAML o Terraform:

Console

Importante: se stai configurando il servizio Cloud Run per i controlli di integrità HTTP, devi anche aggiungere un endpoint di controllo di integrità HTTP nel codice del servizio per rispondere al controllo. Se stai configurando una sonda gRPC, devi anche implementare il protocollo di controllo dell'integrità gRPC nel tuo servizio Cloud Run.

  1. Nella console Google Cloud, vai alla pagina Cloud Run.

    Vai a Cloud Run

  2. Per un nuovo servizio, espandi Container, volumi, networking, sicurezza per visualizzare le opzioni di controllo di integrità. Per un servizio esistente, fai clic sul servizio che vuoi configurare, quindi su Modifica ed esegui il deployment per visualizzare le opzioni di controllo di integrità'integrità.

  3. Nella sezione Contenitori, vai a Controlli di integrità e fai clic su Aggiungi controllo di integrità per aprire il riquadro di configurazione Aggiungi controllo di integrità.

  4. Nel menu Seleziona il tipo di controllo di integrità, seleziona il tipo di controllo di integrità da aggiungere, ad esempio avvio o attività.

  5. Nel menu Seleziona il tipo di probe, seleziona il tipo di probe che vuoi utilizzare, ad esempio HTTP o gRPC. Viene visualizzato il form di configurazione della sonda.

  6. Tieni presente che la configurazione della sonda varia in base al tipo di sonda. Configura le impostazioni del probe:

    • Se utilizzi i probe HTTP:
      • Assicurati che il servizio utilizzi HTTP/1 (l'impostazione predefinita di Cloud Run), non HTTP/2.
      • Utilizza il campo Percorso per specificare il percorso relativo all'endpoint, ad esempio /.
      • Seleziona la casella di controllo Intestazioni HTTP per specificare intestazioni personalizzate facoltative. Poi specifica il nome dell'intestazione nel campo Nome e il valore dell'intestazione nel campo Valore. Fai clic su Aggiungi intestazione HTTP per specificare altre intestazioni.
    • In Porta, specifica la porta del container utilizzata per il servizio.
    • Per Ritardo iniziale, specifica il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
    • Per Periodo, specifica il periodo (in secondi) in cui eseguire la prova. Ad esempio 2 per eseguire la sonda ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.
    • Per Soglia di errore, specifica il numero di tentativi del probe prima di spegnere il contenitore. Il valore predefinito è 3.
    • Per Timeout, specifica il numero di secondi di attesa prima del timeout della sonda. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
  7. Fai clic su Aggiungi per aggiungere la nuova soglia.

YAML

Importante: se stai configurando il servizio Cloud Run per i controlli HTTP, devi anche aggiungere un endpoint nel codice del servizio per rispondere al controllo. Se stai configurando una sonda gRPC, devi anche implementare il protocollo di controllo dell'integrità gRPC nel tuo servizio Cloud Run.

Avvio TCP

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura l'attributo startupProbe come mostrato:

    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

    Sostituisci

    • SERVICE con il nome del servizio Cloud Run.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del contenitore utilizzata per il servizio.
    • DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore compreso tra 0 e 240 secondi. Il valore predefinito è 0 secondi.
    • (FACOLTATIVO) TIMEOUT con il numero di secondi da attendere prima del time out del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
    • THRESHOLD con il numero di volte per ripetere il probe prima di spegnere il container. Il valore predefinito è 3.
    • PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio 2 per eseguire la sonda ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Avvio HTTP

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Assicurati che il servizio utilizzi HTTP/1 (l'impostazione predefinita di Cloud Run), non HTTP/2.

  3. Configura l'attributo startupProbe come mostrato:

    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

    sostituisci

    • SERVICE con il nome del servizio Cloud Run.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATH con il percorso relativo all'endpoint HTTP, ad esempio /ready.
    • (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del contenitore utilizzata per il servizio.
    • (FACOLTATIVO) httpHeaders può essere utilizzato per fornire intestazioni personalizzate ripetute o multiple utilizzando i campi HEADER_NAME e HEADER_VALUE come mostrato.
    • (FACOLTATIVO) DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore da 0 a 240 secondi. Il valore predefinito è 0 secondi.
    • (FACOLTATIVO) TIMEOUT con il numero di secondi da attendere prima del time out del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
    • (FACOLTATIVO) THRESHOLD con il numero di tentativi del probe prima di chiudere il contenitore. Il valore predefinito è 3.
    • (FACOLTATIVO) PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio 2 per eseguire la sonda ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.
  4. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Attualità HTTP

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Assicurati che il servizio utilizzi HTTP/1 (l'impostazione predefinita di Cloud Run), non HTTP/2.

  3. Configura l'attributo livenessProbe come mostrato:

    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

    Sostituisci

    • SERVICE con il nome del servizio Cloud Run.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • PATH con il percorso relativo all'endpoint HTTP, ad esempio /ready.
    • (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del contenitore utilizzata per il servizio.
    • (FACOLTATIVO) httpHeaders può essere utilizzato per fornire intestazioni personalizzate ripetute o multiple utilizzando i campi HEADER_NAME e HEADER_VALUE come mostrato.
    • (FACOLTATIVO) DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore da 0 a 240 secondi. Il valore predefinito è 0 secondi.
    • (FACOLTATIVO) TIMEOUT con il numero di secondi da attendere prima del time out del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 3600. Il valore predefinito è 1.
    • (FACOLTATIVO) THRESHOLD con il numero di tentativi del probe prima di chiudere il contenitore. Il valore predefinito è 3.
    • (FACOLTATIVO) PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio 2 per eseguire la sonda ogni 2 secondi. Specifica un valore compreso tra 1 e 3600 secondi. Il valore predefinito è 10 secondi.
  4. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Avvio di gRPC

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura l'attributo startupProbe come mostrato:

    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

    Sostituisci

    • SERVICE con il nome del servizio Cloud Run.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • (FACOLTATIVO) GRPC_SERVICE. Se impostato, viene utilizzato nel campo service di grpc.health.v1.HealthCheckRequest quando viene chiamata la RPC grpc.health.v1.Health.Check.
    • (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del contenitore utilizzata per il servizio.
    • (FACOLTATIVO) DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore da 0 a 240 secondi. Il valore predefinito è 0 secondi.
    • (FACOLTATIVO) TIMEOUT con il numero di secondi di attesa prima del timeout del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 240. Il valore predefinito è 1.
    • (FACOLTATIVO) THRESHOLD con il numero di tentativi del probe prima di smettere di eseguire il container. Il valore predefinito è 3.
    • (FACOLTATIVO) PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio 2 per eseguire la sonda ogni 2 secondi. Specifica un valore compreso tra 1 e 240 secondi. Il valore predefinito è 10 secondi.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Attività gRPC

  1. Se stai creando un nuovo servizio, salta questo passaggio. Se stai aggiornando un servizio esistente, scarica la relativa configurazione YAML:
    gcloud run services describe SERVICE --format export > service.yaml
  2. Configura l'attributo livenessProbe come mostrato:

    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

    Sostituisci

    • SERVICE con il nome del servizio Cloud Run.
    • IMAGE_URL con un riferimento all'immagine del container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL ha la forma LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • (FACOLTATIVO) CONTAINER_PORT deve essere impostato sulla porta del contenitore utilizzata per il servizio.
    • (FACOLTATIVO) GRPC_SERVICE. Se impostato, viene utilizzato nel campo service di grpc.health.v1.HealthCheckRequest quando viene chiamata la RPC grpc.health.v1.Health.Check.
    • (FACOLTATIVO) DELAY con il numero di secondi da attendere dopo l'avvio del container prima di eseguire il primo probe. Specifica un valore da 0 a 240 secondi. Il valore predefinito è 0 secondi.
    • (FACOLTATIVO) TIMEOUT con il numero di secondi da attendere prima del time out del probe. Questo valore non può superare il valore specificato per periodSeconds. Specifica un valore compreso tra 1 e 3600. Il valore predefinito è 1.
    • (FACOLTATIVO) THRESHOLD con il numero di tentativi del probe prima di chiudere il contenitore. Il valore predefinito è 3.
    • (FACOLTATIVO) PERIOD con il periodo (in secondi) in cui eseguire il probe. Ad esempio 2 per eseguire la sonda ogni 2 secondi. Specifica un valore compreso tra 1 e 3600 secondi. Il valore predefinito è 10 secondi.
  3. Crea o aggiorna il servizio utilizzando il seguente comando:
    gcloud run services replace service.yaml

Terraform

Importante: se stai configurando il servizio Cloud Run per i controlli HTTP, devi anche aggiungere un endpoint nel codice del servizio per rispondere al controllo. Se stai configurando una sonda gRPC, devi anche implementare il protocollo di controllo dell'integrità gRPC nel tuo servizio Cloud Run.

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Avvio TCP

Configura il servizio Cloud Run con l'attributo startup_probe come mostrato:

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

  deletion_protection = false # set to "true" in production

  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
        }
      }
    }
  }
}

Avvio HTTP

Assicurati che il servizio utilizzi HTTP/1 (l'impostazione predefinita di Cloud Run), non HTTP/2.

Configura il servizio Cloud Run con l'attributo startup_probe come mostrato:

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

  deletion_protection = false # set to "true" in production

  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 = "*"
          }
        }
      }
    }
  }
}

Attualità HTTP

Assicurati che il servizio utilizzi HTTP/1 (l'impostazione predefinita di Cloud Run), non HTTP/2.

Configura il servizio Cloud Run con l'attributo liveness_probe come mostrato:

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

  deletion_protection = false # set to "true" in production

  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 = "*"
          }
        }
      }
    }
  }
}

Avvio di gRPC

Configura il servizio Cloud Run con l'attributo startup_probe come mostrato:

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

  deletion_protection = false # set to "true" in production

  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"
        }
      }
    }
  }
}

Attività gRPC

Configura il servizio Cloud Run con l'attributo liveness_probe come mostrato:

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

  deletion_protection = false # set to "true" in production

  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"
        }
      }
    }
  }
}

Creare endpoint di controllo di integrità HTTP

Se configuri il servizio Cloud Run per un probe di avvio HTTP o un probe di verifica della funzionalità, devi aggiungere un endpoint nel codice del servizio per rispondere al probe. L'endpoint può avere il nome che preferisci, ad esempio /startup o /ready, ma deve corrispondere ai valori specificati per path nella configurazione della sonda. Ad esempio, se specifichi /ready per un probe di avvio HTTP, specifica path nella configurazione del probe come mostrato:

startupProbe:
  httpGet:
    path: /ready

Gli endpoint di controllo dell'integrità HTTP sono accessibili dall'esterno e seguono gli stessi principi di qualsiasi altro endpoint di servizio HTTP esposto esternamente.