Questa pagina descrive come configurare il comando entrypoint e gli argomenti per un'istanza Cloud Run.
Quando Cloud Run avvia un container, esegue il comando entrypoint predefinito e gli argomenti del comando predefinito dell'immagine. Se vuoi eseguire l'override degli argomenti predefiniti di entrypoint e comando 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 al comando.
Tieni presente che puoi avere un massimo di 1000 argomenti per container per ogni istanza.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment delle istanze Cloud Run, chiedi all'amministratore di concederti i seguenti ruoli IAM:
- Cloud Run Developer (
roles/run.developer) sull'istanza Cloud Run - Utente dell'account di servizio (
roles/iam.serviceAccountUser) sull'identità di servizio
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 la tua istanza 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 entrypoint e argomenti
Per eseguire l'override delle impostazioni predefinite dell'immagine ENTRYPOINT e CMD, puoi impostare il comando e gli argomenti dell'entrypoint per un'istanza Cloud Run utilizzando Google Cloud CLI o YAML:
gcloud
Per aggiornare il comando e gli argomenti di avvio per un'istanza esistente:
gcloud beta run instances update INSTANCE --command COMMAND --args ARG1,ARG-N
Sostituisci quanto segue:
- INSTANCE: il nome dell'istanza
- COMMAND: il comando con cui viene avviato il container, se non utilizzi il comando predefinito.
- ARG1: l'argomento che stai inviando al comando del container. Utilizza un elenco delimitato da virgole per più argomenti.
Per specificare l'entrypoint e gli argomenti durante il deployment di un'istanza nuova o esistente:
gcloud beta run instances deploy INSTANCE --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Sostituisci IMAGE_URL con un riferimento all'immagine container, ad esempio us-docker.pkg.dev/cloudrun/container/hello:latest.
Se vuoi ripristinare i valori predefiniti del container per i comandi e gli argomenti dell'entrypoint, fornisci stringhe vuote come segue:
gcloud beta run instances update INSTANCE --command "" --args ""
YAML
Se stai creando una nuova istanza, salta questo passaggio. Se stai aggiornando un'istanza esistente, scarica la relativa configurazione YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
L'esempio seguente contiene la configurazione YAML:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/launch-stage: BETA spec: containers: - name: CONTAINER_NAME image: IMAGE_URL command: - COMMAND args: - ARG1 - ARG-N
Sostituisci quanto segue:
- INSTANCE: il nome dell'istanza Cloud Run.
- CONTAINER_NAME: il nome del container.
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest.- COMMAND: il comando con cui deve essere avviato il container se non utilizzi il comando predefinito.
- ARG1: l'argomento che stai inviando al comando del container. Se utilizzi più argomenti, specificali ciascuno su una riga separata, ad esempio, come mostrato, ARG-N.
Crea o aggiorna l'istanza utilizzando il seguente comando:
gcloud beta run instances replace instance.yaml
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 che hanno dipendenze ed elenca i container da cui dipendono, in modo che vengano avviati per primi. I container che non hanno dipendenze vengono sempre avviati per primi e contemporaneamente.
Per utilizzare correttamente questa funzionalità, devi utilizzare i probe controllo di integrità avvio. Il probe di avvio consente a Cloud Run di ispezionare l'integrità di un container dipendente, assicurandosi che venga superato correttamente prima di avviare il container successivo. Se non utilizzi i controlli di integrità, i container vengono avviati nell'ordine specificato anche se i container da cui dipendono non vengono avviati.
Utilizza Google Cloud CLI o YAML per specificare l'ordine di avvio:
gcloud
Prima di utilizzare Google Cloud CLI per specificare l'ordine di avvio, configura un controllo di integrità dell'avvio per qualsiasi container sidecar da cui dipende un altro container. Il container in entrata (il container con una porta esposta) ha un controllo di integrità di avvio TCP predefinito.
-
Nella console Google Cloud , attiva Cloud Shell.
Nella parte inferiore della console Google Cloud , 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à installata e con valori già impostati per il progetto corrente. L'inizializzazione della sessione può richiedere alcuni secondi.
Per eseguire il deployment di più container in un'istanza con un ordine di avvio specificato, esegui il comando:
gcloud beta run instances deploy INSTANCE \ --container CONTAINER_1_NAME --image='IMAGE_URL' --port='CONTAINER_PORT' \ --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \ --startup-probe=tcpSocket.port=SIDECAR_PORT \ --container CONTAINER_3_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME,CONTAINER_2_NAME
Sostituisci quanto segue:
- INSTANCE: il nome dell'istanza
IMAGE_URL: un riferimento all'immagine container, ad esempious-docker.pkg.dev/cloudrun/container/hello:latest.- CONTAINER_PORT: la porta su cui il container in entrata rimane in ascolto delle richieste in entrata. Per un'istanza con più container, devi configurare esplicitamente la porta del container per il container in entrata.
SIDECAR_IMAGE: un riferimento all'immagine container sidecar.SIDECAR_PORT: la porta del container sidecar controllata dal probe di avvio TCP. Ogni container sidecar da cui dipende un altro container deve configurare un probe di avvio.
Se vuoi configurare ogni container nel comando di deployment, fornisci la configurazione di ogni container dopo i parametri
container.
YAML
Se stai creando una nuova istanza, salta questo passaggio. Se stai aggiornando un'istanza esistente, scarica la relativa configurazione YAML:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
L'esempio seguente contiene la configurazione YAML:
apiVersion: run.googleapis.com/v1 kind: Instance metadata: name: INSTANCE annotations: run.googleapis.com/container-dependencies: '{"CONTAINER1":["CONTAINER2"], "CONTAINER3":["CONTAINER1","CONTAINER2"]}'
Sostituisci quanto segue:
- INSTANCE: il nome dell'istanza Cloud Run.
- CONTAINER1: il nome del primo container che dipende da uno o più container. Puoi impostare il nome del container nel file YAML. Cloud Run genera 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.
Crea o aggiorna l'istanza utilizzando il seguente comando:
gcloud beta run instances replace instance.yaml