Imposta timeout attività (job)

Per impostazione predefinita, ogni attività viene eseguita per un massimo di 10 minuti: puoi modificare la durata impostandola su un periodo di tempo più breve o più lungo 24 ore su 24.

Il timeout dell'attività viene impostato come descritto in questa pagina. Non esiste un timeout esplicito nell'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à è stata interrotta.

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, tutte le attività in corso dalla macchina attuale a un'altra. Questa migrazione conserva l'intero stato dell'attività. Tuttavia, c'è una breve pausa mentre viene eseguita la migrazione dell'attività.

Gli eventi di manutenzione sono trasparenti: non devi apportare modifiche modifiche al container per gestire gli eventi di manutenzione. Tieni presente che ogni volta l'attività avvia e completa la migrazione, Cloud Run stampa un messaggio di log.

Se però vuoi monitorare o gestire gli eventi di manutenzione in un modo specifico, puoi rilevare il segnale SIGTSTP, che viene inviato 10 secondi prima che un'attività venga di cui è stata eseguita la migrazione. Dopo la migrazione, l'attività riceve immediatamente un segnale SIGCONT dopo il riavvio dell'attività.

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 seguenti ruoli IAM:

Per un elenco di ruoli e autorizzazioni IAM associati Cloud Run, consulta Ruoli IAM di Cloud Run e le autorizzazioni IAM di Cloud Run. Se il tuo job Cloud Run si interfaccia con Le API Google Cloud, come le librerie client di Cloud, consultano guida alla configurazione dell'identità dei servizi. 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 il la pagina iniziale delle impostazioni del job, se preferisci. Se stai configurando un'istanza 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à del job in il job attuale e seleziona un'Unità di tempo. Puoi specificare solo la durata del timeout come valore intero in secondo, minuto o ora. Ad esempio, per impostare 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.

gcloud

  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, per ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • TIMEOUT con la durata massima per le attività di lavoro, specificando la quantità di tempo e le unità: ad esempio, 10m5s è 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, per ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • TIMEOUT con la durata massima per le attività di lavoro, che specifica la quantità di tempo e le unità. Puoi specificare solo l'ora 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, ad esempio le variabili di ambiente 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 di un'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 di timeout delle attività correnti 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à nella configurazione i dettagli.

gcloud

  1. Utilizza questo comando:

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