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
ignorare 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. Puoi configurare queste impostazioni tramite la consoleGoogle 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:
-
Cloud Run Developer (
roles/run.developer
) sul job Cloud Run -
Utente service account (
roles/iam.serviceAccountUser
) sull'identità di servizio
Per un elenco di ruoli e autorizzazioni IAM associati a Cloud Run, consulta Ruoli IAM Cloud Run e Autorizzazioni IAM 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 ulteriori informazioni sulla concessione dei ruoli, consulta Autorizzazioni di deployment e Gestire l'accesso.
Configura il punto di ingresso e gli argomenti
Per configurare il punto di ingresso e gli argomenti dei comandi per i job:
Console
Nella Google Cloud console, vai alla pagina dei job Cloud Run:
Seleziona Job dal menu e fai clic su Deploy container per compilare la pagina delle impostazioni iniziali del job. Se stai configurando un job esistente, seleziona il job, poi fai clic su Modifica.
Fai clic su Container, volumi, connessioni, sicurezza per espandere la pagina delle proprietà del job.
Fai clic sulla scheda Generale.
- Specifica il comando che vuoi che venga eseguito dal container, se non il comando definito nel container, e specifica facoltativamente gli argomenti del comando del punto di ingresso.
Fai clic su Crea o Aggiorna.
gcloud
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 container 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, 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 con 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
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
Aggiorna gli attributi
args:
ecommand
: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 container se non utilizzi il comando predefinito.
- ARG1 con l'argomento che stai inviando al comando del contenitore. (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.
Puoi anche specificare altre configurazioni, come variabili di ambiente o limiti di memoria.
Aggiorna la configurazione del job esistente:
gcloud run jobs replace job.yaml
Per cancellare tutti i comandi e gli argomenti del punto di ingresso 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 risorsagoogle_cloud_run_v2_job
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 tuo job Cloud Run.
- REGION con la regione Google Cloud . 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 contenitore. (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 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.
Visualizza le impostazioni del contenitore
Per visualizzare le impostazioni del container correnti per il tuo job Cloud Run:
Console
Nella Google Cloud console, vai alla pagina dei job Cloud Run:
Fai clic sull'offerta di lavoro che ti interessa per aprire la pagina Dettagli offerta di lavoro.
Fai clic su Visualizza e modifica la configurazione del job.
Individua l'impostazione del contenitore nei dettagli della configurazione.
gcloud
Utilizza questo comando:
gcloud run jobs describe JOB_NAME
Individua l'impostazione del contenitore nella configurazione restituita.
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. Specifichi i contenitori che hanno dipendenze ed elenchi i contenitori da cui dipendono. I container 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
Nella console Google Cloud , vai alla pagina Cloud Run:
- Per un job esistente, fai clic su Job. Poi 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.
Per un nuovo job, specifica il nome del job, l'URL del contenitore del job, la regione e il numero di attività. Nella scheda Container, volumi, networking, sicurezza, segui questi passaggi:
- Configura il container del job principale.
- Per aggiungere ogni contenitore sidecar che stai eseguendo il deployment, fai clic su Aggiungi contenitore.
- 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.
Per un job esistente, segui questi passaggi per ogni contenitore:
- Esamina i container elencati nel menu Ordine di avvio del container.
- Se un container dipende da altri container, utilizza il menu Ordine di avvio dei container per selezionare questi container.
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
-
In the Google Cloud console, 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.
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 in cui stai eseguendo il deployment. Puoi omettere completamente questo parametro, ma ti verrà chiesto il nome del job se lo ometti.
- CONTAINER_1_NAME con un nome per il contenitore 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 contenitore nel comando di deployment, fornisci la configurazione di ciascun contenitore dopo i parametri
container
.
YAML
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
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 container nel file 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 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.
Crea o aggiorna il job utilizzando il seguente comando:
gcloud run jobs replace job.yaml