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 eseguite fino al completamento affinché l'esecuzione del job sia riuscita. Le esecuzioni dei job scrivono i log in Cloud Logging e inviano i dati di monitoraggio a Cloud Monitoring.

Oltre a queste funzionalità di registrazione, puoi anche visualizzare i dettagli di esecuzione dei 1000 job più recenti utilizzando il riquadro dei dettagli di esecuzione, insieme a eventuali esecuzioni avvenute negli ultimi sette giorni. I dettagli delle esecuzioni precedenti vengono rimossi e non sono più visibili nel riquadro dei dettagli dell'esecuzione. Tuttavia, i dati di monitoraggio e dei log per le esecuzioni precedenti sono ancora disponibili in Cloud Logging e Cloud Monitoring, in base alle norme 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 ruoli IAM nel 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 eseguire l'override delle configurazioni dei job o per annullare le esecuzioni dei job: Cloud Run Developer (roles/run.developer) nel job Cloud Run

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 Cloud, consulta la guida alla configurazione dell'identità del servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le autorizzazioni di deployment e gestisci 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 visualizzare 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, 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:

  • ACCESS_TOKEN con un token di accesso valido per un account che possiede le 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. All'interno di un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server di metadati dell'istanza 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 i job immediatamente al momento della creazione

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

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

Sostituire la configurazione del job per un'esecuzione specifica

Puoi eseguire l'override degli argomenti, delle variabili di ambiente, del numero di attività e del tempo di attesa delle attività configurati per un job quando lo esegui 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.

Ecco alcuni casi d'uso comuni:

  • Esegui il job in modo programmatico dal codice e vuoi eseguire l'override di argomenti e/o variabili di ambiente, ad esempio per indicare al job dove si trovano i dati di input per questa esecuzione.
  • Hai un job in cui ogni attività è progettata per 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 da un'esecuzione all'altra. 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

  1. Vai alla pagina dei job Cloud Run

  2. Individua il lavoro che ti interessa.

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

  4. Fai clic sulla freccia di espansione davanti al pulsante Modifica e poi 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

Librerie client

Per eseguire un job esistente dal codice, sostituendo la relativa configurazione:

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

Sostituisci:

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 ne interrompe l'esecuzione corrente. 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 l'utilizzo di job Cloud Run per il periodo di esecuzione del job.

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 da annullare.

  4. Nel menu Azioni, fai clic sull'icona dei 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:

  • ACCESS_TOKEN con un token di accesso valido per un account che possiede le 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. All'interno di un'istanza container Cloud Run, puoi recuperare un token di accesso utilizzando il server di metadati dell'istanza 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.

Eliminare un'esecuzione del job

Puoi eliminare un'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: