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 eseguite correttamente fino al completamento affinché l'esecuzione del job vada a buon fine. 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 meno recenti vengono rimossi e non sono più visibili nel riquadro dei dettagli di esecuzione. Tuttavia, i log e i dati di monitoraggio delle 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 tuo job Cloud Run:
- Per eseguire i job utilizzando Google Cloud CLI: Cloud Run Invoker (
roles/run.invoker) nel job Cloud Run - Per eseguire job utilizzando la console Google Cloud , per ignorare le configurazioni dei job o per annullare le esecuzioni dei job: Sviluppatore Cloud Run (
roles/run.developer) per il 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 le APIGoogle Cloud , come le librerie client Cloud, consulta la guida alla configurazione dell'identità di servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.
Esegui job
Puoi eseguire i job utilizzando la console Google Cloud , Google Cloud CLI, le librerie client o l'API REST.
Console
Per eseguire un job:
Nella console Google Cloud , vai alla pagina Job di Cloud Run:
Individua l'offerta di lavoro che ti interessa.
Fai clic sul job per visualizzare la pagina dei dettagli.
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
Sostituisci quanto segue:
- JOB_NAME: il nome del job.
- REGION: la regione in cui si trova 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
metodo API jobs.run.
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 di 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 i job
Console
Per eseguire immediatamente un job:
Nella console Google Cloud , vai alla pagina Job di Cloud Run:
Se hai un job esistente, fai clic sul job per visualizzare la pagina dei dettagli del job, poi seleziona Visualizza e modifica la configurazione del job. Se stai creando un nuovo job, seleziona Deploy container.
Vai in fondo alla pagina e seleziona la casella Esegui subito job prima di creare o aggiornare il job.
gcloud
Puoi specificare il flag --execute-now
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 si trova 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: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 contenere al massimo 49 caratteri ed 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 creare una nuova esecuzione. Il job sarà 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 più configurazioni, come variabili di ambiente o limiti di memoria.
Crea o aggiorna il job utilizzando il seguente comando:
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: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 creare una nuova esecuzione. Il job sarà pronto quando l'esecuzione sarà 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 di 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 di 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 creare una nuova esecuzione. Il job sarà pronto quando l'esecuzione sarà 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.
Eseguire l'override della configurazione del job per un'esecuzione specifica
Puoi eseguire l'override degli argomenti, delle variabili di ambiente, del numero di attività e del timeout dell'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 in modo programmatico dal codice e vuoi sostituire argomenti e/o 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à è pensata per elaborare un solo input di dati. Vuoi ignorare il numero di attività in base al numero di input da elaborare.
- Il tempo di esecuzione del job varia tra le esecuzioni. Vuoi eseguire l'override del timeout dell'attività in base al tempo di esecuzione previsto del job.
Per eseguire l'override della configurazione del job per un'esecuzione:
Console
Individua l'offerta di lavoro che ti interessa.
Fai clic sul job per visualizzare la pagina dei dettagli.
Fai clic sulla freccia di espansione davanti al pulsante Modifica e poi su Esegui con override per visualizzare il modulo Esegui job con override.
Modifica gli argomenti, le variabili di ambiente, il numero di attività e/o la configurazione del timeout dell'attività per questa esecuzione in base alle tue esigenze, 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.
- Coppie KEY e VALUE: le variabili di ambiente.
- TASKS: il numero di attività.
- TIMEOUT: il timeout attività.
Librerie client
Per eseguire un job esistente dal codice, ignorando la configurazione del job:
API REST
Per eseguire l'override della configurazione di un job esistente, 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 '{"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 gli override 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 di 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 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 attualmente in esecuzione, utilizza la funzionalità di annullamento. L'annullamento dell'esecuzione di un 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 dell'esecuzione di un job non comporta l'inversione degli addebiti per l'utilizzo di job Cloud Run per il periodo di esecuzione del job.
Per annullare un'esecuzione:
Console
Fai clic sul job per aprire il riquadro dei dettagli.
Seleziona l'esecuzione del job da annullare.
Nel menu Azioni, fai clic sull'icona con i tre puntini e poi 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 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 di 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.
Eliminare un'esecuzione del job
Puoi eliminare un'esecuzione del job, anche se è attualmente in esecuzione. Se elimini un'esecuzione, questa non continuerà. Per maggiori dettagli, vedi Eliminare un'esecuzione del job.
Passaggi successivi
Dopo aver eseguito un job, puoi:
- Visualizza i log dei job
- Monitorare il rendimento del job
- Gestire le esecuzioni dei job
- Gestire i lavori