Questa pagina descrive come eseguire i job Cloud Run. L'esecuzione di un job crea un'esecuzione del job in cui tutte le attività devono essere completate correttamente affinché l'esecuzione del job abbia esito positivo. Le esecuzioni dei job scrivono i log in Cloud Logging e inviano i dati di monitoraggio a Cloud Monitoring.
Oltre a queste funzionalità di logging, puoi anche visualizzare i dettagli di esecuzione dei job per le 1000 esecuzioni più recenti di un job utilizzando il riquadro dei dettagli di esecuzione, insieme a tutte le esecuzioni avvenute negli ultimi sette giorni. I dettagli di esecuzione precedenti vengono rimossi e non sono più visibili nel riquadro dei dettagli di esecuzione. Tuttavia, i log e i dati di monitoraggio per le esecuzioni precedenti sono ancora disponibili in Cloud Logging e Cloud Monitoring, in base alle norme di conservazione di questi prodotti.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per le operazioni descritte in questa pagina, chiedi all'amministratore di concederti uno dei seguenti ruoli IAM per il job Cloud Run:
- Per eseguire i job utilizzando Google Cloud CLI: Cloud Run Invoker (
roles/run.invoker) sul job Cloud Run - Per eseguire i job utilizzando la Google Cloud console, per sostituire le configurazioni dei job o per annullare le esecuzioni dei job: Cloud Run Developer (
roles/run.developer) sul job Cloud Run
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM di Cloud Run e Autorizzazioni IAM di Cloud Run. Se il tuo job Cloud Run interagisce con Google Cloud API, come le librerie client Cloud, consulta la guida alla configurazione dell'identità del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.
Esegui job
Puoi eseguire i job utilizzando la Google Cloud console, Google Cloud CLI, le librerie client o l'API REST.
Console
Per eseguire un job:
Nella Google Cloud console, vai alla pagina Job di Cloud Run:
Individua il job che ti interessa.
Fai clic sul job per visualizzare la pagina dei dettagli del job.
Fai clic su Esegui.
gcloud
Per eseguire un job esistente:
gcloud run jobs execute JOB_NAME
Se vuoi che il comando attenda il completamento dell'esecuzione, utilizza
gcloud run jobs execute JOB_NAME --wait --region=REGION
Per visualizzare i log dell'esecuzione immediatamente dopo l'avvio, utilizza:
gcloud beta run jobs execute JOB_NAME --tail --region=REGION
Sostituisci quanto segue:
- JOB_NAME: il nome del job.
- REGION: la regione in cui è possibile trovare la risorsa. Ad esempio,
europe-west1. In alternativa, imposta la proprietàrun/region.
Librerie client
Per eseguire un job esistente dal codice:
API REST
Per eseguire un job esistente, invia una richiesta HTTP POST al
jobs.run metodo API.
Ad esempio, utilizzando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run
Sostituisci quanto segue:
- ACCESS_TOKEN: un token di accesso valido per un account che
dispone delle autorizzazioni IAM per eseguire un job.
Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando
gcloud auth print-access-token. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container. - JOB_NAME: il nome del job.
- REGION: la Google Cloud regione del job.
- PROJECT_ID: l' Google Cloud ID progetto.
Esegui subito job
Console
Per eseguire subito un job:
Nella Google Cloud console, vai alla pagina Job di Cloud Run:
Se hai un job esistente, fai clic sul job per visualizzare la pagina dei dettagli del job, quindi seleziona Visualizza e modifica la configurazione del job. Se stai creando un nuovo job, seleziona Esegui il deployment del container.
Vai alla fine della pagina e seleziona la casella Esegui subito job prima di creare o aggiornare il job.
gcloud
Puoi specificare il --execute-now
flag quando crei o aggiorni un job:
Creazione di un job:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL \ --execute-now \ --region=REGION
Aggiornamento di un job:
gcloud run jobs update JOB_NAME --execute-now --region=REGION
Sostituisci quanto segue:
- JOB_NAME: il nome del job.
- IMAGE_URL: un riferimento all'
immagine container, ad
esempio
us-docker.pkg.dev/cloudrun/container/job:latest. - REGION: la regione in cui è possibile trovare la risorsa. Ad esempio,
europe-west1.
YAML
Puoi archiviare la specifica del job in un file YAML e poi eseguirne il deployment utilizzando gcloud CLI.
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
Configura l'attributo
startExecutionTokencome mostrato di seguito:apiVersion: run.googleapis.com/v2 kind: Job metadata: name: JOB_NAME spec: template: spec: template: spec: containers: - image: IMAGE_URL startExecutionToken: START_EXECUTION_SUFFIX
Sostituisci quanto segue:
- JOB_NAME: il nome del job Cloud Run. I nomi dei job devono avere una lunghezza massima di 49 caratteri e devono essere univoci per regione e progetto.
- IMAGE_URL: un riferimento all'
immagine container, ad
esempio
us-docker.pkg.dev/cloudrun/container/job:latest. - START_EXECUTION_SUFFIX: una stringa univoca utilizzata come suffisso per la creazione di una nuova esecuzione. Il job diventerà pronto quando l'esecuzione viene avviata correttamente. La somma della lunghezza del nome del job e del token deve essere inferiore a 63 caratteri.
Puoi anche specificare altre configurazioni, come le variabili di ambiente o i limiti di memoria.
Crea o aggiorna il job utilizzando il seguente comando:
gcloud run jobs replace job.yaml
Il comando
gcloud run jobs replaceutilizza per impostazione predefinita il filejob.yaml, se presente.
Terraform
Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.
Aggiungi quanto segue a unagoogle_cloud_run_v2_job
risorsa nella configurazione Terraform:resource "google_cloud_run_v2_job" "default" {
name = "cloudrun-job"
location = "REGION"
deletion_protection = false
start_execution_token = "START_EXECUTION_SUFFIX"
template {
template {
containers {
image = "us-docker.pkg.dev/cloudrun/container/job"
}
}
}
}
Sostituisci quanto segue:
- REGION: la Google Cloud regione. Ad esempio, europe-west1.
- START_EXECUTION_SUFFIX: una stringa univoca utilizzata come suffisso per la creazione di una nuova esecuzione. Il job diventerà pronto quando l'esecuzione viene avviata correttamente. La somma della lunghezza del nome del job e del token deve essere inferiore a 63 caratteri.
Librerie client
Per eseguire immediatamente un job dal codice utilizzando le librerie client Cloud:
API REST
Per eseguire immediatamente i job al momento della creazione, invia una richiesta HTTP POST all'endpoint jobs dell'API
Cloud Run Admin.
Ad esempio, utilizzando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{ "template": { "template": { "containers": { "image": "IMAGE_URL" } } }, "startExecutionToken": "START_EXECUTION_SUFFIX" }' \ "https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME"
Sostituisci quanto segue:
- ACCESS_TOKEN: un token di accesso valido per un account che
dispone delle autorizzazioni IAM per creare job.
Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando
gcloud auth print-access-token. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container. - IMAGE_URL: un riferimento all'
immagine container, ad
esempio
us-docker.pkg.dev/cloudrun/container/job:latest. - START_EXECUTION_SUFFIX: una stringa univoca utilizzata come suffisso per la creazione di una nuova esecuzione. Il job diventerà pronto quando l'esecuzione viene avviata correttamente. La somma della lunghezza del nome del job e del token deve essere inferiore a 63 caratteri.
- PROJECT_ID: l' Google Cloud ID progetto.
- REGION: la Google Cloud regione del job.
- JOB_NAME: il nome del job che vuoi creare.
Sostituisci la configurazione del job per un'esecuzione specifica
Puoi sostituire gli argomenti, le variabili di ambiente, il numero di attività e il timeout delle attività configurati per un job quando esegui un job impostando questi parametri quando avvii una nuova esecuzione del job. I parametri specificati influiscono solo su questa esecuzione e non su quelle successive, perché la definizione del job sottostante rimane invariata.
Alcuni casi d'uso comuni includono:
- Esegui il job a livello di programmazione dal codice e vuoi sostituire gli argomenti e/o le variabili di ambiente, ad esempio per indicare al job la posizione dei dati di input per questa esecuzione.
- Hai un job in cui ogni attività è destinata a elaborare un solo dato di input. Vuoi sostituire il numero di attività in base al numero di input da elaborare.
- Il tempo di esecuzione del job varia tra le esecuzioni. Vuoi sostituire il timeout delle attività in base al tempo di esecuzione previsto del job.
Per sostituire la configurazione del job per un'esecuzione:
Console
Individua il job che ti interessa.
Fai clic sul job per visualizzare la pagina dei dettagli del job.
Fai clic sulla freccia di espansione davanti al pulsante Modifica e fai clic su Esegui con sostituzioni per visualizzare il modulo Esegui job con sostituzioni.
Modifica gli argomenti, le variabili di ambiente, il numero di attività e/o la configurazione del timeout delle attività per questa esecuzione come preferisci, quindi fai clic su Esegui.
gcloud
Utilizza il comando:
gcloud run jobs execute JOB_NAME \ --args ARGS \ --update-env-vars KEY=VALUE>,KEY_N=VALUE_N \ --tasks TASKS \ --task-timeout TIMEOUT
Sostituisci quanto segue:
- JOB_NAME: il nome del job.
- ARGS: gli argomenti del job.
- KEY e VALUE coppie: le variabili di ambiente.
- TASKS: il numero di attività.
- TIMEOUT: il timeout delle attività.
Librerie client
Per eseguire un job esistente dal codice, sostituendo la configurazione del job:
API REST
Per sostituire la configurazione del job per un job esistente, invia una richiesta HTTP POST a
all'endpoint jobs dell'API Cloud Run Admin
Ad esempio, utilizzando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '{"overrides": {"containerOverrides": [{"args": ["ARGS"], "env": [{"name": "KEY", "value": "VALUE"}]}], "taskCount": TASKS, "timeout": "TIMEOUT" }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME:run
Sostituisci quanto segue:
- ACCESS_TOKEN: un token di accesso valido per un account che
dispone delle autorizzazioni IAM per eseguire sostituzioni dei job.
Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando
gcloud auth print-access-token. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container. - JOB_NAME: il nome del job.
- ARGS: argomenti del job.
- Coppie KEY e VALUE: variabili di ambiente.
- TASKS: il numero di attività.
- TIMEOUT: il timeout delle attività.
- REGION: la Google Cloud regione del job.
- PROJECT_ID: l' Google Cloud ID progetto.
Annulla esecuzione job
Per interrompere l'esecuzione di un job Cloud Run in corso, utilizza la funzionalità di annullamento. L'annullamento di un'esecuzione del job interrompe l'esecuzione del job corrente. Le esecuzioni annullate hanno lo stato annullato. Potrai comunque visualizzare l'esecuzione, inclusi i dati di configurazione, i log e i dati di monitoraggio.
L'annullamento di un'esecuzione del job non comporta l'inversione degli addebiti per l'utilizzo dei job Cloud Run per il periodo in cui il job è stato eseguito.
Per annullare un'esecuzione:
Console
Fai clic sul job per aprire il riquadro dei dettagli del job.
Seleziona l'esecuzione del job che vuoi annullare.
Nel menu Azioni, fai clic sull'icona con i puntini di sospensione, quindi su Annulla.
gcloud
Utilizza il comando:
gcloud run jobs executions cancel EXECUTION_NAME
Sostituisci EXECUTION_NAME con il nome dell'esecuzione.
Questo comando richiede una conferma, quindi rispondi al prompt inserendo
y per confermare.
Librerie client
Per annullare l'esecuzione di un job dal codice:
API REST
Per annullare l'esecuzione di un job, invia una richiesta HTTP POST a
all'endpoint jobs dell'API Cloud Run Admin
Ad esempio, utilizzando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X POST \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME/executions/EXECUTION-NAME:cancel
Sostituisci quanto segue:
- ACCESS_TOKEN: un token di accesso valido per un account che
dispone delle autorizzazioni IAM per annullare le esecuzioni dei job.
Ad esempio, se hai eseguito l'accesso a gcloud, puoi recuperare un token di accesso utilizzando
gcloud auth print-access-token. Da un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server dei metadati dell'istanza container. - JOB_NAME: il nome del job.
- EXECUTION-NAME: il nome dell'esecuzione del job.
- REGION: la Google Cloud regione del job.
- PROJECT_ID: l' Google Cloud ID progetto.
Elimina un'esecuzione del job
Puoi eliminare l'esecuzione di un job, anche se è in corso. Se elimini un'esecuzione, questa viene interrotta. Per maggiori dettagli, vedi Eliminare l'esecuzione di un job.
Passaggi successivi
Dopo aver eseguito un job, puoi eseguire le seguenti operazioni:
- Visualizza i log dei job
- Monitora il rendimento dei job
- Gestisci le esecuzioni dei job
- Gestisci i job