Imposta timeout attività (job)

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

Il timeout dell'attività viene impostato come descritto in questa pagina. Non esiste un timeout esplicito per l'esecuzione di un job: quando tutte le attività sono state completate, l'esecuzione del job è completa.

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

Le unità specificano una durata. Puoi specificare la durata del timeout come valore intero in secondi, minuti o ore. Ad esempio, per impostare la durata del timeout su 10 minuti e 5 secondi, specifica il valore come 605 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 delle attività in corso dalla macchina attuale a un'altra. Questo processo di migrazione conserva l'intero stato dell'attività. Tuttavia, l'elaborazione prevede una breve pausa durante la migrazione dell'attività.

Gli eventi di manutenzione sono trasparenti: non è necessario apportare modifiche al container per gestirli. Tieni presente che ogni volta che un'attività viene avviata 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 rilevare il segnale SIGTSTP, che viene inviato 10 secondi prima della migrazione di un'attività. Dopo la migrazione, l'attività riceve un indicatore SIGCONT subito dopo il riavvio.

Il seguente esempio di Go è una funzione che rileva questi indicatori 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 seguenti ruoli IAM:

Per un elenco dei ruoli e delle 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 dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.

Imposta timeout attività

Per specificare il timeout dell'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 Contenitore, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Fai clic sulla scheda Generale.

    immagine

    • Nel campo Timeout attività, specifica la durata massima per le attività di job nel job attuale e seleziona un'Unità di tempo. Puoi specificare la durata del timeout solo come valore intero in secondo, minuto o ora. Ad esempio, per impostare una durata di 10 minuti e 5 secondi, nel campo Timeout attività, specifica 605 e seleziona Unità di tempo come secondo.
  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 tuo 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 job che stai aggiornando:

    gcloud run jobs update JOB_NAME --task-timeout TIMEOUT

YAML

  1. Se stai creando un nuovo job, salta questo passaggio. Se stai aggiornando un job esistente, scarica la relativa configurazione YAML:

    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:

    • JOB_NAME con il nome del tuo 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à. Puoi specificare il tempo solo come valore intero in secondi, minuti o ore. Ad esempio, per impostare una durata di 10 minuti e 5 secondi, specifica 605s.

    Puoi anche specificare ulteriori dettagli di configurazione, come le variabili di ambiente o i 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, vedi 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 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 di timeout delle attività attuali per il tuo 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 lavoro che ti interessa per aprire la pagina Dettagli offerta di lavoro.

  3. Fai clic sulla scheda Configuration (Configurazione).

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

Riga di comando

  1. Utilizza questo comando:

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