Configurare i container per i job

Questa pagina descrive come configurare il comando dell'entry point e gli argomenti per un job Cloud Run.

Quando Cloud Run avvia un container, esegue il comando dell'entry point predefinito e gli argomenti del comando predefiniti dell'immagine. Se vuoi eseguire l'override dell'entry point e degli 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 dei container nei job Cloud Run. Puoi configurare queste impostazioni tramite la Google Cloud console, Google Cloud CLI o YAML.

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 Google Cloud le 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.

Configurare l'entry point e gli argomenti

Per configurare l'entry point e gli argomenti del comando per i job:

Console

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

    Vai a Cloud Run

  2. Fai clic su Esegui il deployment del container per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, selezionalo e 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. Fai clic sulla scheda Generale.

    immagine

    • Specifica il comando che vuoi che il container esegua, se non il comando definito nel container, e facoltativamente specifica gli argomenti del comando dell'entry point.
  5. Fai clic su Crea o Aggiorna.

gcloud

  1. Per impostare il comando di avvio e gli argomenti per un nuovo job:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

    Sostituisci

    • JOB_NAME con il nome del job.
    • COMMAND con il comando con cui deve iniziare il container se non utilizzi il comando predefinito.
    • ARG1 con l'argomento che stai inviando al comando del container. Per più di un argomento, 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.
    • IMAGE_URL: un riferimento all' immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.

Per aggiornare il comando e gli argomenti per un job esistente:

gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N 

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

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

    Sostituisci quanto segue:

    • IMAGE_URL: un riferimento all' immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • COMMAND con il comando con cui deve iniziare il container se non utilizzi il comando predefinito.
    • ARG1 con l'argomento che stai inviando al comando del container. (Facoltativo) Specifica argomenti aggiuntivi, ognuno su una riga separata. Se gli argomenti contengono virgole o caratteri speciali, consulta Utilizzare segni di uguale o virgole negli argomenti.

    Puoi anche specificare altre configurazioni, come le variabili di ambiente o i limiti di memoria.

  3. Aggiorna la configurazione del job esistente:

    gcloud run jobs replace job.yaml

Per cancellare tutti i comandi e gli argomenti dell'entry point che hai impostato (ripristina i valori predefiniti del container), fornisci stringhe vuote come segue:

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

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     = "JOB_NAME"
 location = "REGION"

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

Sostituisci:

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

Utilizzare segni di uguale o virgole negli argomenti

Se utilizzi segni di uguale negli argomenti, forniscili utilizzando il seguente formato:

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

Se gli argomenti utilizzano virgole, consulta la sezione Configurare le variabili di ambiente per i dettagli sull'escape.

Impostare una directory di lavoro

La directory di lavoro è il luogo 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 container. Per reimpostare questo campo sul valore predefinito, passa una stringa vuota o rimuovi il campo.

Ad esempio:

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

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

    Sostituisci quanto segue:

    • WORKING_DIR: (facoltativo) directory di lavoro del container. Se non specificato, verrà utilizzato il valore predefinito del runtime del container, che potrebbe essere configurato nell'immagine container (IMAGE_URL: un riferimento all'immagine container, ad esempio, us-docker.pkg.dev/cloudrun/container/hello:latest. Se utilizzi Artifact Registry, il repository REPO_NAME deve essere già stato creato. L'URL segue il formato di LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG ).
  3. Aggiorna la configurazione del job esistente:

    gcloud run jobs replace job.yaml

Per cancellare tutti i comandi e gli argomenti dell'entry point che hai impostato (ripristina i valori predefiniti del container), fornisci stringhe vuote come segue:

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

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     = "JOB_NAME"
 location = "REGION"

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

Sostituisci:

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

Configurare l'ordine di avvio dei container per i deployment sidecar

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

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

Console

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

    Vai a Cloud Run

    • Per un job esistente, fai clic sul job nell'elenco e seleziona Visualizza e modifica la configurazione del job per visualizzare il modulo Modifica job.
    • Per un nuovo job, fai clic su Esegui il deployment del container per visualizzare il modulo Crea job.
  2. Per un nuovo job, specifica il nome del job, l'URL del container del job, la regione e il numero di attività. Nella scheda Container, networking, sicurezza, procedi nel seguente modo:

    1. Configura il container del job principale.
    2. Per aggiungere ogni container sidecar di cui stai eseguendo il deployment, fai clic su Aggiungi container.
    3. 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. Per un job esistente, segui questi passaggi per ogni container:

    1. Esamina i container elencati nel menu Ordine di avvio dei container.
    2. Se un container dipende da altri container, utilizza il menu Ordine di avvio dei container per selezionare questi container.
  4. Completa le altre configurazioni richieste, quindi fai clic su Crea per un nuovo job o su Aggiorna per un job esistente. Attendi il completamento del deployment.

gcloud

  1. Nella Google Cloud console, attiva Cloud Shell.

    Attiva Cloud Shell

    Nella parte inferiore della Google Cloud console viene avviata una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già inclusa e installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.

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

    • JOB con il nome del job di cui stai eseguendo il deployment. Puoi omettere completamente questo parametro, ma ti verrà richiesto il nome del job se lo ometti.
    • CONTAINER_1_NAME con un nome per il container del job principale.
    • JOB_IMAGE con un riferimento all'immagine container del job principale, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • CONTAINER_2_NAME con un nome per il container sidecar, ad esempio sidecar.
    • SIDECAR_IMAGE con 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_NAME --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

    • CONTAINER1 con il nome del primo container che dipende da uno o più container. Tieni presente che puoi impostare il nome del container in YAML: Cloud Run genererà automaticamente un nome se non ne viene specificato uno.
    • CONTAINER2 con il nome del container che deve essere avviato prima di CONTAINER1.
    • CONTAINER3 con 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

Visualizzare le impostazioni del container

Per visualizzare le impostazioni del container correnti per il job Cloud Run:

Console

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

    Vai ai job Cloud Run

  2. Fai clic sul job che ti interessa per aprire la pagina Dettagli job.

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

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

gcloud

  1. Utilizza il seguente comando:

    gcloud run jobs describe JOB_NAME
  2. Individua l'impostazione del container nella configurazione restituita.