Configurare i container per i job

Questa pagina descrive come configurare il comando del punto di ingresso e gli argomenti per un job Cloud Run.

Quando Cloud Run avvia un container, esegue il comando entrypoint predefinito dell'immagine e gli argomenti del comando predefiniti. Se vuoi sostituire l'entry point e gli argomenti del comando predefiniti dell'immagine, puoi utilizzare i campi command e args nella configurazione del container. Il campo command specifica il comando effettivo eseguito dal container. Il campo args specifica gli argomenti passati a questo comando.

Tieni presente che puoi avere un massimo di 1000 argomenti per container per ogni job.

Questa pagina mostra come configurare il comando, gli argomenti e l'ordine di avvio per i container nei job Cloud Run.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare i job Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:

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à del servizio. Per saperne di più sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestisci l'accesso.

Configura il punto di ingresso e gli argomenti

Puoi configurare il punto di ingresso e gli argomenti dei comandi per i job utilizzando la consoleGoogle Cloud , gcloud CLI, YAML o Terraform:

Console

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

    Vai a Cloud Run

  2. Seleziona Job dal menu di navigazione di Cloud Run:

    1. Se stai creando un nuovo job, fai clic su Deploy container per compilare la pagina delle impostazioni iniziali del job.

    2. Se stai configurando un job esistente, selezionalo, quindi fai clic su Visualizza e modifica la configurazione del job.

  3. Fai clic su Container, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Specifica il comando che vuoi che venga eseguito dal container, se non il comando definito nel container.

  5. (Facoltativo) Specifica gli argomenti del comando dell'entry point.

  6. Fai clic su Crea o Aggiorna.

gcloud

  • Per impostare il comando di avvio e gli argomenti per un nuovo job, esegui questo comando:

    gcloud run jobs create JOB --image IMAGE_URL --command COMMAND --args ARG1,ARG_N

    Sostituisci quanto segue:

    • JOB: il nome del job Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • COMMAND: il comando con cui deve avviarsi il container se non utilizzi il comando predefinito.
    • ARG1: l'argomento che invii al comando container. Per più argomenti, utilizza un elenco separato da virgole, ad esempio --args="arg1", "arg2", "arg3". Se gli argomenti contengono virgole o caratteri speciali, consulta Utilizzare segni di uguale o virgole negli argomenti.
  • Per aggiornare il comando e gli argomenti per un job esistente, esegui questo comando:

    gcloud run jobs update JOB --command COMMAND --args ARG1,ARG_N 
  • Per cancellare eventuali comandi e argomenti del punto di ingresso, esegui questo comando:

    gcloud run jobs update JOB --command "" --args "" 

YAML

  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 --format export > job.yaml
  2. Aggiorna gli attributi args: e command:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL
                args:
                - ARG1'
                - ARG_N
                command:
                - COMMAND
                

    Sostituisci quanto segue:

    • JOB: il nome del job Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • ARG1: l'argomento che invii al comando container. (Facoltativo) Specifica argomenti aggiuntivi, ognuno in una riga separata. Se gli argomenti contengono virgole o caratteri speciali, consulta Utilizzare segni di uguale o virgole negli argomenti.
    • COMMAND: il comando con cui deve avviarsi il container se non utilizzi il comando predefinito.
  3. Aggiorna la configurazione del job esistente:

    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 risorsa google_cloud_run_v2_job nella configurazione Terraform:
resource "google_cloud_run_v2_job" "default" {
 name     = "JOB"
 location = "REGION"

 template {
   template {
     containers {
       image = "us-docker.pkg.dev/cloudrun/container/job"
       command = ["COMMAND"]
       args = ["ARG1", "ARG_N"]
     }
   }
 }
}

Sostituisci quanto segue:

  • JOB: il nome del job Cloud Run.
  • REGION: la Google Cloud regione. Ad esempio europe-west1.
  • COMMAND: il comando con cui deve essere avviato il container se non utilizzi il comando predefinito.
  • ARG1: l'argomento che invii al comando container. (Facoltativo) Specifica argomenti aggiuntivi. Se gli argomenti contengono virgole o caratteri speciali, consulta Utilizzare segni di uguale o virgole negli argomenti.

Utilizzare i segni di uguale o le virgole negli argomenti

Se utilizzi il segno uguale negli argomenti, fornisci questi ultimi utilizzando il seguente formato:

gcloud run deploy  \
  --args="--repo-allowlist=github.com/example/example_demo"

Se gli argomenti utilizzano virgole, consulta la sezione Configurazione delle variabili di ambiente per informazioni dettagliate sull'escape.

Impostare una directory di lavoro

La directory di lavoro è la posizione in cui il container esegue i comandi e gli argomenti. Puoi specificare una directory di lavoro personalizzata per il processo del container durante il deployment di un servizio nuovo o esistente. Se non specificata, viene utilizzata la directory di lavoro predefinita dell'immagine del container. Per reimpostare questo campo sul valore predefinito, trasmetti una stringa vuota o rimuovi il campo.

Puoi impostare una directory di lavoro utilizzando gcloud CLI, YAML o Terraform:

gcloud

Per aggiornare la directory di lavoro per un job esistente, esegui questo comando:

gcloud run jobs update JOB --workdir WORKING_DIR

Sostituisci quanto segue:

  • JOB: il nome del job Cloud Run.
  • WORKING_DIR: la directory di lavoro del container. Se non specificato, viene utilizzato il valore predefinito dell'immagine container. Per reimpostare questo campo sul valore predefinito, passa una stringa vuota "".

Per specificare la directory di lavoro durante la creazione di un job, esegui questo comando:

gcloud run jobs create JOB --image IMAGE_URL --workdir WORKING_DIR

Sostituisci quanto segue:

  • JOB: il nome del job Cloud Run.
  • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
  • WORKING_DIR: la directory di lavoro del container. Se non specificato, viene utilizzato il valore predefinito dell'immagine container. Per reimpostare questo campo sul valore predefinito, trasmetti una stringa vuota "".

YAML

  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 --format export > job.yaml
  2. Aggiorna l'attributo workingDir::

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
     name: JOB
    spec:
     template:
       spec:
         template:
           spec:
             containers:
             - image: IMAGE_URL
               workingDir: WORKING_DIR
               

    Sostituisci quanto segue:

    • JOB: il nome del job Cloud Run.
    • IMAGE_URL: un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • WORKING_DIR (facoltativo): la directory di lavoro del container. Se non specificato, verrà utilizzato il valore predefinito del runtime del container, che potrebbe essere configurato nell'immagine container.
  3. Aggiorna la configurazione del job esistente:

    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 risorsa google_cloud_run_v2_job nella configurazione Terraform:
resource "google_cloud_run_v2_job" "default" {
 name     = "JOB"
 location = "REGION"

 template {
   template {
     containers {
       image = "us-docker.pkg.dev/cloudrun/container/job"
       working_dir = WORKING_DIR
     }
   }
 }
}

Sostituisci quanto segue:

  • JOB: il nome del job Cloud Run.
  • REGION: la Google Cloud regione. Ad esempio europe-west1.
  • WORKING_DIR (facoltativo): la directory di lavoro del container. Se non specificato, verrà utilizzato il valore predefinito del runtime del container, che potrebbe essere configurato nell'immagine container.

Configura l'ordine di avvio del container per i deployment sidecar

Per specificare l'ordine di avvio dei container in un deployment sidecar, utilizza la funzionalità delle dipendenze dei container. Specifica i contenitori che hanno dipendenze ed elenca i contenitori da cui dipendono. I container che non hanno dipendenze vengono sempre avviati per primi e contemporaneamente.

Puoi utilizzare la console Google Cloud , gcloud CLI o YAML per specificare l'ordine di avvio:

Console

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

    Vai a Cloud Run

  2. Se stai creando un nuovo job, segui questi passaggi:

    1. Fai clic su Esegui il deployment del container.
    2. Specifica il nome del job, l'URL del container del job, la regione e il numero di attività.
    3. Fai clic su Container, networking, sicurezza per espandere la sezione.
    4. Configura il container del job principale.
    5. Per aggiungere ogni contenitore sidecar che stai implementando, fai clic su Aggiungi contenitore.
    6. Se un container dipende da altri container, utilizza il menu Ordine di avvio dei container per selezionare i container che Cloud Run deve avviare prima del container corrente.
  3. Se stai configurando un job esistente, segui questi passaggi:

    1. Seleziona il lavoro che vuoi aggiornare.
    2. Fai clic su Visualizza e modifica la configurazione del job.
    3. Fai clic su Container, connessioni, sicurezza per espandere la sezione.
    4. Se un container dipende da altri container, utilizza il menu Ordine di avvio dei container per selezionarli.
  4. Completa le altre configurazioni richieste, poi fai clic su Crea per un nuovo job o su Aggiorna per un job esistente. Attendi il completamento del deployment.

gcloud

Per eseguire il deployment di più container in un job con un ordine di avvio specificato, esegui il comando:

  gcloud beta run create JOB \
      --container CONTAINER_1_NAME --image='JOB_IMAGE' \
      --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
      --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAMECONTAINER_2_NAME

Sostituisci quanto segue:

  • JOB: il nome del job Cloud Run.
  • CONTAINER_1_NAME: un nome per il contenitore del job principale.
  • JOB_IMAGE: un riferimento all'immagine container del job principale, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
  • CONTAINER_2_NAME: un nome per il container sidecar, ad esempio sidecar.
  • SIDECAR_IMAGE: un riferimento all'immagine container sidecar.

    Se vuoi configurare ogni container nel comando di deployment, fornisci la configurazione di ogni container dopo i parametri container.

YAML

  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 --format export > job.yaml
  2. Aggiorna l'attributo container-dependencies:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      annotations:
        run.googleapis.com/launch-stage: BETA
      name: JOB
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
    

    Sostituisci quanto segue:

    • CONTAINER1: il nome del primo container che dipende da uno o più container. Tieni presente che puoi impostare il nome del container nel file YAML: Cloud Run genererà automaticamente un nome se non ne viene specificato uno.
    • CONTAINER2: il nome del container che deve essere avviato prima di CONTAINER1.
    • CONTAINER3: il nome del secondo container che dipende da uno o più container.

    Nell'esempio mostrato nello snippet YAML, CONTAINER2 viene avviato per primo, CONTAINER1 per secondo e CONTAINER3 per ultimo.

  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.

Visualizza le impostazioni del contenitore

Per visualizzare le impostazioni del container correnti per il tuo job Cloud Run, utilizza la console Google Cloud o Google Cloud CLI:

Console

  1. Nella console Google Cloud , vai alla pagina dei job Cloud Run:

    Vai ai job Cloud Run

  2. Fai clic sul job per aprire la pagina Dettagli job.

  3. Fai clic su Visualizza e modifica la configurazione del job.

  4. Individua l'impostazione del contenitore nei dettagli della configurazione.

gcloud

  1. Esegui questo comando:

    gcloud run jobs describe JOB
  2. Individua l'impostazione del contenitore nella configurazione restituita.