Per impostazione predefinita, ogni attività viene eseguita per un massimo di 10 minuti: puoi impostare un periodo di tempo più breve o più lungo fino a 168 ore (7 giorni). Il supporto per i timeout superiori a 24 ore è disponibile in Anteprima.
Imposti il timeout dell'attività come descritto in questa pagina. Non è previsto un timeout esplicito per un'esecuzione del job: quando tutte le attività sono completate, l'esecuzione del job è completata.
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 605
secondi.
Se per il job sono abilitati i tentativi di ripetizione, l'impostazione del timeout si applica a ogni tentativo di un'attività. Se il tentativo di esecuzione dell'attività non viene completato entro questo periodo di tempo, verrà interrotto. Maggiore è il tempo di esecuzione di un job, maggiori sono le probabilità di riscontrare problemi che ne causano il fallimento, ad esempio errori di dipendenza downstream, errori di esaurimento della memoria o problemi di infrastruttura. Ti consigliamo di attivare i tentativi di nuovo invio per tutti i job, ma soprattutto per quelli con attività che richiedono molto tempo.
Osservazione e gestione degli eventi di manutenzione
I job potrebbero subire periodicamente eventi di manutenzione. Durante un evento di manutenzione, viene eseguita la migrazione di tutte le attività in corso dalla macchina corrente a un'altra macchina. Questo processo di migrazione conserva l'intero stato dell'attività. Tuttavia, si verifica una breve interruzione nel corso dell'elaborazione durante la migrazione dell'attività.
Gli eventi di manutenzione sono trasparenti; non devi apportare modifiche al contenitore per gestirli. Tieni presente che ogni volta che inizia e termina la migrazione di un compito, Cloud Run stampa un messaggio di log.
Tuttavia, se vuoi monitorare o gestire gli eventi di manutenzione in un modo specifico, puoi acquisire l'indicatore SIGTSTP
, che viene inviato 10 secondi prima della migrazione di un'attività. Dopo la migrazione, l'attività riceve un segnale SIGCONT
subito dopo il riavvio.
Il seguente esempio 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:
-
Cloud Run Developer (
roles/run.developer
) nel job Cloud Run -
Utente account di servizio (
roles/iam.serviceAccountUser
) nell'identità del servizio
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 tuo job Cloud Run si interfaccia con le API Google Cloud, come le librerie client Cloud, consulta la guida alla configurazione dell'identità di servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le autorizzazioni di deployment e gestisci l'accesso.
Imposta il timeout dell'attività
Per specificare il timeout dell'attività per un job Cloud Run:
Console
Nella console Google Cloud, vai alla pagina dei job Cloud Run:
Fai clic su Esegui il deployment del contenitore e seleziona Job per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, selezionalo e fai clic su Modifica.
Fai clic su Contenitore, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.
Fai clic sulla scheda Generale.
- Nel campo Timeout attività, specifica la durata massima per le attività del job nel
job corrente e seleziona un'unità di tempo. Puoi specificare la durata del timeout solo come valore intero in secondi, minuti o ore. Ad esempio, per impostare una durata di 10 minuti e 5 secondi, nel campo Timeout attività specifica
605
e seleziona secondo come Unità di tempo.
- Nel campo Timeout attività, specifica la durata massima per le attività del job nel
job corrente e seleziona un'unità di tempo. Puoi specificare la durata del timeout solo come valore intero in secondi, minuti o ore. Ad esempio, per impostare una durata di 10 minuti e 5 secondi, nel campo Timeout attività specifica
Fai clic su Crea o Aggiorna.
gcloud
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 del container, ad esempio
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT con la durata massima per le attività del job,
specificando la durata e le unità di misura: ad esempio,
10m5s
corrisponde a dieci minuti e cinque secondi.
Per un job che stai aggiornando:
gcloud run jobs update JOB_NAME --task-timeout TIMEOUT
YAML
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
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 job.
- IMAGE_URL con un riferimento all'immagine del container, ad esempio
us-docker.pkg.dev/cloudrun/container/job:latest
. - TIMEOUT con la durata massima per le attività del job,
specificando la durata e le unità di misura. 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, ad esempio variabili di ambiente o limiti di memoria.
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 della task per un job Cloud Run, utilizza la risorsa google_cloud_run_v2_job
e applica lo snippet seguente al file main.tf
:
Visualizzare le impostazioni del timeout delle attività
Per visualizzare le impostazioni di timeout delle attività correnti per il tuo job Cloud Run:
Console
Nella console Google Cloud, vai alla pagina dei job Cloud Run:
Fai clic sul job che ti interessa per aprire la pagina Dettagli job.
Fai clic sulla scheda Configuration (Configurazione).
Individua l'impostazione del timeout dell'attività nei dettagli della configurazione.
gcloud
Utilizza il seguente comando:
gcloud run jobs describe JOB_NAME
Individua l'impostazione del timeout dell'attività nella configurazione restituita.