Esegui job

Questa pagina descrive come eseguire i job Cloud Run. Esecuzione di un job crea un'esecuzione di job in cui le attività devono essere completate correttamente perché l'esecuzione del job riuscito. Le esecuzioni dei job scrivono i log in Cloud Logging e inviare i dati di monitoraggio a Cloud Monitoring.

Oltre a queste funzionalità di logging, puoi anche visualizzare i dettagli sull'esecuzione del job per le 1000 esecuzioni più recenti di un job utilizzando riquadro dei dettagli di esecuzione, insieme a tutte le esecuzioni eseguite negli ultimi sette giorni. I dettagli di esecuzione precedenti vengono rimossi e non sono più visibili nell'esecuzione riquadro dei dettagli. Tuttavia, i log e i dati di monitoraggio relativi sono ancora disponibili in Cloud Logging e Cloud Monitoring, soggetto ai criteri di conservazione per questi prodotti.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per le operazioni descritte in questa pagina, chiedi all'amministratore di concederti uno dei seguenti tipi IAM ruoli sul tuo job Cloud Run:

  • Per eseguire i job utilizzando Google Cloud CLI: Invoker di Cloud Run (roles/run.invoker) sul job Cloud Run
  • Per eseguire job utilizzando la console Google Cloud, per eseguire l'override delle 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 Cloud Run, consulta Ruoli IAM di Cloud Run e le 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.

Esegui job

Puoi eseguire i job utilizzando la console Google Cloud o Google Cloud CLI.

Console

Per eseguire un job:

  1. Vai alla pagina dei job Cloud Run

  2. Individua il lavoro che ti interessa.

  3. Fai clic sul job per visualizzarne la pagina dei dettagli.

  4. Fai clic su Execute (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:

  • JOB_NAME con il nome del job.
  • REGION con la regione in cui è possibile trovare la risorsa. 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, se utilizzi 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:

  • ACCESS_TOKEN con 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 utilizzando gcloud auth print-access-token. Dall'interno di un'istanza di container Cloud Run, puoi recuperare un token di accesso utilizzando il server di metadati dell'istanza di container.
  • JOB-NAME con il nome del job.
  • REGION con la regione Google Cloud del job.
  • PROJECT-ID con l'ID progetto Google Cloud.

Esegui immediatamente i job alla loro creazione

Se utilizzi la riga di comando, puoi specificare l'esecuzione del job subito dopo crei un job:

gcloud run jobs create JOB_NAME --execute-now --region=REGION

Esegui l'override della configurazione del job per un'esecuzione specifica

Puoi eseguire l'override di argomenti, variabili di ambiente, numero di attività e attività timeout configurato per un job quando ne esegui uno impostando questi parametri all'avvio di un nuovo job. I parametri specificati influiscono solo su questo in esecuzione e non in quelli successivi, perché la definizione del job sottostante rimane senza modifiche.

Alcuni casi d'uso comuni includono:

  • Esegui il job in modo programmatico a partire dal codice e vuoi eseguire l'override argomenti e/o variabili di ambiente, ad esempio per indicare al job i dati di input per questa esecuzione.
  • Hai un compito in cui ogni attività ha lo scopo di elaborare solo un input e i dati di Google Cloud. Vuoi eseguire l'override del numero di attività in base al numero di input da essere elaborati.
  • Il tempo di esecuzione del job varia da un'esecuzione all'altra. Da sostituire il timeout dell'attività in base al tempo di esecuzione previsto del job.

Per eseguire l'override della configurazione del job per un'esecuzione:

Console

  1. Vai alla pagina dei job Cloud Run

  2. Individua il lavoro che ti interessa.

  3. Fai clic sul job per visualizzarne la pagina dei dettagli.

  4. Fai clic sulla freccia di espansione davanti al pulsante Modifica e fai clic su Esegui con override per visualizzare Esegui job con override. in un modulo di testo.

    immagine

  5. Modifica argomenti, variabili di ambiente, numero di attività e/o attività la configurazione del timeout per questa esecuzione come previsto, 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

Librerie client

Per eseguire un job esistente dal codice, eseguendo l'override della configurazione del job:

API REST

Per eseguire l'override della configurazione per un job esistente, invia una richiesta HTTP POST a l'endpoint jobs dell'API Cloud Run Admin

Ad esempio, se utilizzi 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": TASK-COUNT, "timeout": "TIMEOUT" }}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB-NAME:run

Sostituisci:

Annulla esecuzione job

Per arrestare l'esecuzione di un job Cloud Run attualmente in esecuzione, utilizza la funzionalità di annullamento. Annullamento di un job che interrompe l'esecuzione attuale del job. Le esecuzioni annullate hanno lo stato cancelled. 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 annulla gli addebiti per nessuna Utilizzo dei job Cloud Run per il periodo di esecuzione del job.

Per annullare un'esecuzione:

Console

  1. Vai alla pagina dei job Cloud Run

  2. Individua l'esecuzione del job da annullare.

  3. Fai clic sull'esecuzione del job per visualizzare la pagina dei dettagli dell'esecuzione.

  4. Fai clic su Annulla.

gcloud

Utilizza il comando:

gcloud run jobs executions cancel EXECUTION_NAME

Sostituisci EXECUTION_NAME con il nome dell'esecuzione.

Questo comando richiede la 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 l'endpoint jobs dell'API Cloud Run Admin

Ad esempio, se utilizzi 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:

  • ACCESS_TOKEN con 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 utilizzando gcloud auth print-access-token. Dall'interno di un'istanza di container Cloud Run, puoi recuperare un token di accesso utilizzando il server di metadati dell'istanza di container.
  • JOB_NAME con il nome del job.
  • EXECUTION-NAME con il nome dell'esecuzione del job.
  • REGION con la regione Google Cloud del job.
  • PROJECT-ID con l'ID progetto Google Cloud.

Elimina esecuzione job

Puoi eliminare un'esecuzione di job, anche se è attualmente in esecuzione. Se elimini un'esecuzione, ne viene interrotta la prosecuzione. Per maggiori dettagli, vedi Elimina l'esecuzione di un job.

Passaggi successivi

Dopo aver eseguito un job, puoi fare quanto segue: