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 è previsto un timeout esplicito per un'esecuzione del job: quando tutte le attività sono completate, l'esecuzione del job è completata.
In caso di nuovi tentativi, l'impostazione di timeout si applica a tutti i tentativi. Se il tentativo di esecuzione dell'attività non viene completato entro questo periodo di tempo, verrà interrotto.
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. Questo processo di 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 fare nulla 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 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:
-
Sviluppatore Cloud Run (
roles/run.developer
) sul 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 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
Nella console Google Cloud, vai alla pagina dei job Cloud Run:
Fai clic su Esegui il deployment del container e seleziona Job per compilare il job iniziale. nella pagina delle impostazioni. Se stai configurando un job esistente, seleziona il job, quindi 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 Generali.
- 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 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.
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, 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 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 le variabili di ambiente 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 lavoro che ti interessa per aprire la pagina Dettagli offerta di lavoro.
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 di timeout dell'attività nel configurazione.