Configura i container per le istanze

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

Quando Cloud Run avvia un container, esegue il comando del punto di ingresso predefinito e gli argomenti del comando predefiniti dell'immagine. Se vuoi sostituire il punto di ingresso 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 istanza.

Ruoli obbligatori

Per ottenere le autorizzazioni necessarie per configurare ed eseguire il deployment di istanze 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 la tua istanza Cloud Run interagisce con Google Cloud 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 il punto di ingresso e gli argomenti

Per sostituire le impostazioni predefinite ENTRYPOINT e CMD dell'immagine, puoi impostare il comando del punto di ingresso e gli argomenti per un'istanza Cloud Run utilizzando Google Cloud CLI o YAML:

gcloud

Per aggiornare il comando di avvio e gli argomenti 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ù di un argomento.

Per specificare il punto di ingresso e gli argomenti durante il deployment di un'istanza nuova o esistente:

gcloud beta run instances deploy --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 le impostazioni predefinite del container per i comandi e gli argomenti del punto di ingresso, fornisci stringhe vuote come segue:

gcloud beta run instances --image IMAGE_URL --command "" --args ""

YAML

  1. 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
  2. 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 esempio us-docker.pkg.dev/cloudrun/container/hello:latest.
    • 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. Se utilizzi più argomenti, specifica ognuno sulla propria riga, ad esempio, come mostrato, ARG-N.
  3. Crea o aggiorna l'istanza utilizzando il seguente comando:

    gcloud beta run instances replace instance.yaml

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. Specifica tutti i container che hanno dipendenze ed elenca i container da cui dipendono, in modo che questi container 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 di controllo di integrità dell'avvio. Il probe di avvio consente a Cloud Run di ispezionare l'integrità di un container dipendente, assicurandosi che venga completato 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.

Tieni presente che non esiste un probe di controllo di integrità dell'avvio predefinito per le istanze.

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.

  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'istanza con un ordine di avvio specificato, esegui il comando:

gcloud beta run instances deploy INSTANCE \
         --container CONTAINER_1_NAME --image='INSTANCE_IMAGE'
     --container CONTAINER_2_NAME --image='SIDECAR_IMAGE' --depends-on=CONTAINER_1_NAME \
     --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 esempio us-docker.pkg.dev/cloudrun/container/hello:latest.
  • 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 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
  2. L'esempio seguente contiene la configurazione YAML:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
    spec:
      template:
        metadata:
          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 in 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.

  3. Crea o aggiorna l'istanza utilizzando il seguente comando:

    gcloud beta run instances replace instance.yaml