Imposta timeout attività (job)

Per impostazione predefinita, ogni attività viene eseguita per un massimo di 10 minuti: puoi scegliere un periodo di tempo più breve o più lungo fino a 24 ore.

Puoi impostare il timeout dell'attività come descritto in questa pagina. Non vi è alcun timeout esplicito per l'esecuzione di un job: quando tutte le attività sono completate, l'esecuzione del job ha terminato.

In caso di nuovi tentativi, l'impostazione di timeout si applica a ogni tentativo di attività. Se il tentativo dell'attività non viene completato entro questo periodo di tempo, verrà arrestato.

Le unità specificano una durata; ad esempio, 10m5s è di dieci minuti e cinque secondi. Se non specifichi un'unità, vengono utilizzati i secondi come unità. Ad esempio, il valore 10 è 10 secondi.

Osservazione e gestione degli eventi di manutenzione

I job potrebbero essere sottoposti periodicamente a eventi di manutenzione. Durante un evento di manutenzione viene eseguita la migrazione di tutte le attività in corso dalla macchina attuale a un'altra. Questo processo di migrazione conserva l'intero stato dell'attività. Tuttavia, l'elaborazione dell'attività si interrompe per un istante.

Gli eventi di manutenzione sono trasparenti. Non devi apportare alcuna modifica al container per gestire gli eventi di manutenzione. Tieni presente che ogni volta che un'attività inizia e termina la migrazione, Cloud Run stampa un messaggio di log.

Tuttavia, se vuoi monitorare o gestire gli eventi di manutenzione in un modo specifico, puoi intercettare l'indicatore SIGTSTP, che viene inviato 10 secondi prima della migrazione di un'attività. Dopo la migrazione, l'attività riceve un indicatore SIGCONT subito dopo il suo riavvio.

Il seguente esempio di Go è una funzione che rileva questi segnali e stampa una voce di log:

func testSignals() {
    sigs := make(chan os.Signal, 1)
    signal.Notify(sigs, syscall.SIGTSTP, syscall.SIGCONT)
    go func() {
        for  {
            sig := <-sigs
            log.Printf("Got Signal: %v", sig)
        }
    }()
 }
 

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare i job Cloud Run, chiedi all'amministratore di concederti i ruoli IAM seguenti:

Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il job Cloud Run si interfaccia con le API Google Cloud, ad esempio le librerie client di Cloud, consulta la guida alla configurazione delle identità dei servizi. Per ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestione dell'accesso.

Imposta timeout dell'attività

Per specificare il timeout delle attività per un job Cloud Run:

Console

  1. Nella console Google Cloud, vai alla pagina dei job Cloud Run:

    Vai a Cloud Run

  2. Se stai configurando un nuovo job, fai clic sulla scheda Job e compila la pagina iniziale delle impostazioni del job come preferisci. Se stai configurando un job esistente, fai clic sul job e poi su Modifica.

  3. Fai clic su Container, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Fai clic sulla scheda Generali.

    immagine

    • Specifica la durata massima delle attività nel job attuale, specificando sia la durata sia le unità: ad esempio, 10m5s è di dieci minuti e cinque secondi.
  5. Fai clic su Crea o Aggiorna.

Riga di comando

  1. Per un job che stai creando:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --task-timeout TIMEOUT

    Sostituisci

    • JOB_NAME con il nome del job.
    • IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • TIMEOUT con la durata massima per le attività del job, specificando la quantità di tempo e le unità: ad esempio, 10m5s è di dieci minuti e cinque secondi.
  2. Per un lavoro che stai aggiornando:

    gcloud run jobs update JOB_NAME --task-timeout TIMEOUT

YAML

Scarica e visualizza la configurazione esistente dei job utilizzando il comando gcloud run jobs describe --format export, che restituisce risultati puliti in formato YAML. Quindi modifica i campi descritti di seguito e carica il file YAML modificato utilizzando il comando gcloud run jobs replace. Assicurati di modificare i campi solo come documentato.

  1. Per visualizzare e scaricare la configurazione:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Aggiorna l'attributo timeoutSeconds::

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
              timeoutSeconds: TIMEOUT

    Sostituisci TIMEOUT con la durata massima delle attività del job, specificando la quantità di tempo e le unità: ad esempio, 10m5s è di dieci minuti e cinque secondi.

    Puoi anche specificare ulteriori configurazioni, ad esempio variabili di ambiente o limiti di memoria.

  3. Aggiorna la configurazione del job esistente:

    gcloud run jobs replace job.yaml

Terraform

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

Per specificare il timeout dell'attività per un job Cloud Run, utilizza la risorsa google_cloud_run_v2_job e applica il seguente snippet al tuo file main.tf:

resource "google_cloud_run_v2_job" "default" {
  name         = "cloud-run-job-timeout"
  location     = "us-central1"
  launch_stage = "BETA"

  template {
    template {
      timeout = "3.500s"

      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job:latest"
      }
    }
  }
}

Visualizza le impostazioni di timeout delle attività

Per visualizzare le impostazioni attuali di timeout delle attività per il job Cloud Run:

Console

  1. Nella console Google Cloud, vai alla pagina dei job Cloud Run:

    Vai ai job Cloud Run

  2. Fai clic sul job che ti interessa per aprire la pagina Dettagli job.

  3. Fai clic sulla scheda Configuration (Configurazione).

  4. Individua l'impostazione del timeout dell'attività nei dettagli della configurazione.

Riga di comando

  1. Utilizza il seguente comando:

    gcloud run jobs describe JOB_NAME
  2. Individua l'impostazione di timeout dell'attività nella configurazione restituita.