Esegui job

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:

  1. Nella Google Cloud console, vai alla pagina Job di Cloud Run:

    Vai ai job Cloud Run

  2. Individua il job che ti interessa.

  3. Fai clic sul job per visualizzare la pagina dei dettagli del job.

  4. 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:

  1. Nella Google Cloud console, vai alla pagina Job di Cloud Run:

    Vai ai job Cloud Run

  2. 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.

  3. 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.

  1. 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
  2. Configura l'attributo startExecutionToken come 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.

  3. Crea o aggiorna il job utilizzando il seguente comando:

    gcloud run jobs replace job.yaml

    Il comando gcloud run jobs replace utilizza per impostazione predefinita il file job.yaml, se presente.

Terraform

Per scoprire come applicare o rimuovere una configurazione Terraform, consulta Comandi Terraform di base.

Aggiungi quanto segue a una google_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

  1. Vai alla pagina dei job Cloud Run

  2. Individua il job che ti interessa.

  3. Fai clic sul job per visualizzare la pagina dei dettagli del job.

  4. 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.

    immagine

  5. 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:

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:

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

  1. Vai alla pagina dei job Cloud Run

  2. Fai clic sul job per aprire il riquadro dei dettagli del job.

  3. Seleziona l'esecuzione del job che vuoi annullare.

  4. 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: