Configurare i container per i job

Questa pagina descrive come configurare il comando e gli argomenti entrypoint 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 eseguire l'override dell'entry point e degli argomenti dei comandi predefiniti dell'immagine, puoi utilizzare i campi command e args nella configurazione del contenitore. Il campo command specifica il comando effettivo eseguito dal contenitore. Il campo args specifica gli argomenti passati al comando.

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

Questa pagina mostra come configurare il comando, gli argomenti e l'ordine di avvio per i contenitori nei job Cloud Run. Puoi configurare queste impostazioni tramite la console Google Cloud, 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 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 APIGoogle Cloud , ad esempio le librerie client di Cloud, consulta la guida alla configurazione dell'identità di servizio. Per ulteriori informazioni sulla concessione dei ruoli, consulta le autorizzazioni di deployment e gestisci l'accesso.

Configura il punto di contatto e gli argomenti

Per configurare il punto di contatto e gli argomenti dei comandi per i job:

Console

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

    Vai a Cloud Run

  2. Fai clic su Esegui il deployment del contenitore e seleziona Job per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, selezionalo e fai clic su Modifica.

  3. Fai clic su Contenitore, variabili e secret, connessioni, sicurezza per espandere la pagina delle proprietà del job.

  4. Fai clic sulla scheda Generale.

    immagine

    • Specifica il comando che vuoi che venga eseguito dal container, 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 essere avviato il contenitore se non utilizzi il comando predefinito.
    • ARG1 con l'argomento che stai inviando al comando del contenitore. Per più di un argomento, utilizza un elenco separato da virgole.
    • IMAGE_URL con un riferimento all'immagine del 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:
              - args:
                - 'ARG1'
                - 'ARG-N'
                command:
                - COMMAND
                image: IMAGE

    Sostituisci

    • COMMAND con il comando con cui deve essere avviato il contenitore se non utilizzi il comando predefinito.
    • ARG1 con l'argomento che stai inviando al comando del contenitore. Se vuoi, specifica altri argomenti, ognuno in una riga distinta.

    Puoi anche specificare ulteriori configurazioni, come variabili di ambiente o limiti di memoria.

  3. Aggiorna la configurazione del job esistente:

    gcloud run jobs replace job.yaml

Per cancellare eventuali comandi e argomenti di punto di ingresso impostati (ripristina i valori predefiniti del contenitore), fornisci stringhe vuote come segue:

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

Utilizzare i segni di uguale o le virgole negli argomenti

Se utilizzi i 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 le virgole, consulta la sezione sulla configurazione delle variabili di ambiente per informazioni su come applicare la sequenza di escape.

Visualizza le impostazioni del contenitore

Per visualizzare le impostazioni correnti del contenitore 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 sulla scheda Configuration (Configurazione).

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

gcloud

  1. Utilizza il seguente comando:

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

Configura 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. Specifica i container con dipendenze e elenca i container di cui dipendono. I contenitori che non hanno dipendenze vengono sempre avviati per primi e contemporaneamente.

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

Console

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

    Vai a Cloud Run

    • Per un job esistente, fai clic su Job. 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 contenitore e seleziona Job per visualizzare il modulo Crea job.
  2. Per un nuovo job, specifica il nome, l'URL del contenitore, la regione e il numero di attività. Nella scheda Container, volumi, networking, sicurezza, segui questi passaggi:

    1. Configura il contenitore del job principale.
    2. Per aggiungere ogni contenitore sidecar di cui stai eseguendo il deployment, fai clic su Aggiungi contenitore.
    3. Se un contenitore dipende da altri contenitori, utilizza il menu Ordine di avvio dei container per selezionare i contenitori che Cloud Run deve avviare prima del contenitore corrente.
  3. Per un job esistente, segui questi passaggi per ogni contenitore:

    1. Esamina i container elencati nel menu Ordine di avvio del container.
    2. Se un contenitore 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

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. Per eseguire il deployment di più contenitori 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 destinazione. Puoi omettere completamente questo parametro, ma se lo fai ti verrà richiesto il nome del job.
    • CONTAINER_1_NAME con un nome per il contenitore del job principale.
    • JOB_IMAGE con un riferimento all'immagine del contenitore del job principale, ad esempio us-docker.pkg.dev/cloudrun/container/job:latest.
    • CONTAINER_2_NAME con un nome per il contenitore sidecar, ad esempio sidecar.
    • SIDECAR_IMAGE con un riferimento all'immagine del contenitore secondario.

    Se vuoi configurare ogni contenitore nel comando di deployment, fornisci la configurazione di ogni contenitore 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 contenitore che dipende da uno o più contenitori. Tieni presente che puoi impostare il nome del contenitore in YAML: Cloud Run genererà automaticamente un nome se non ne viene specificato uno.
    • CONTAINER2 con il nome del contenitore che deve essere avviato prima di CONTAINER1.
    • CONTAINER3 con il nome del secondo contenitore che dipende da uno o più contenitori.

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

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

    gcloud run jobs replace job.yaml