Per impostazione predefinita, ogni attività viene eseguita per un massimo di 10 minuti: puoi modificare questo valore impostando un tempo più breve o più lungo, fino a 168 ore (7 giorni). Il supporto per i timeout superiori a 24 ore è disponibile in anteprima.
Hai impostato il timeout dell'attività come descritto in questa pagina. Non è previsto un timeout esplicito per l'esecuzione di un job: quando tutte le attività sono completate, l'esecuzione del job è terminata.
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.
Se i tentativi di ripetizione sono attivi per il job, l'impostazione del timeout si applica a ogni tentativo di un'attività. Se il tentativo di attività non viene completato entro questo periodo di tempo, verrà interrotto. Più a lungo viene eseguito un job, maggiore è la probabilità che si verifichino problemi che ne causano l'esito negativo, come errori di dipendenza downstream, errori di esaurimento della memoria o problemi di infrastruttura. Ti consigliamo di attivare i tentativi per tutti i job, ma soprattutto per quelli con attività di lunga durata.
Eventi di manutenzione
I job vengono sottoposti periodicamente a eventi di manutenzione. Durante un evento di manutenzione, tutte le attività in corso vengono migrate dalla macchina attuale a un'altra macchina. L'elaborazione viene brevemente sospesa durante la migrazione dell'attività.
Il processo di migrazione conserva lo stato dell'attività, con una notevole eccezione: le connessioni di rete VPC in uscita si interrompono durante gli eventi di manutenzione. Ti consigliamo di utilizzare librerie client in grado di gestire ripristini occasionali della connessione.
Cloud Run stampa un messaggio di log ogni volta che un'attività inizia e termina la migrazione.
Inoltre, se vuoi monitorare o gestire gli eventi di manutenzione in modo specifico,
puoi rilevare il segnale SIGTSTP
, che viene inviato 10 secondi prima della migrazione di un'attività. Dopo la migrazione, l'attività riceve immediatamente un segnale SIGCONT
dopo il riavvio.
Il seguente esempio 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 seguenti ruoli IAM:
-
Cloud Run Developer (
roles/run.developer
) sul job Cloud Run -
Utente service account (
roles/iam.serviceAccountUser
) sull'identità del servizio
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM Cloud Run e Autorizzazioni IAM Cloud Run. Se il tuo job Cloud Run interagisce con le APIGoogle Cloud , come le librerie client 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
Nella Google Cloud console, vai alla pagina dei job Cloud Run:
Seleziona Job dal menu e fai clic su Deploy container per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, seleziona il job, poi fai clic su Modifica.
Fai clic su Container, volumi, 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 Unità di tempo come secondo.
- 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 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
sono 10 minuti e 5 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 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 l'ora
solo come valore intero in secondi, minuti o ore. Ad esempio, per impostare
una durata di 10 minuti e 5 secondi, specifica
605
.
Puoi anche specificare ulteriori dettagli di configurazione, come le variabili di ambiente o i 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.
Aggiungi quanto segue a una risorsagoogle_cloud_run_v2_job
nella configurazione Terraform:Visualizzare le impostazioni di timeout dell'attività
Per visualizzare le impostazioni di timeout dell'attività correnti per il tuo job Cloud Run:
Console
Nella Google Cloud console, vai alla pagina dei job Cloud Run:
Fai clic sull'offerta di lavoro che ti interessa per aprire la pagina Dettagli offerta di lavoro.
Fai clic su Visualizza e modifica la configurazione del job.
Individua l'impostazione del timeout dell'attività nei dettagli di configurazione.
gcloud
Utilizza questo comando:
gcloud run jobs describe JOB_NAME
Individua l'impostazione del timeout dell'attività nella configurazione restituita.