Esta página descreve como configurar o comando e os argumentos do ponto de entrada para uma instância do Cloud Run.
Quando o Cloud Run inicia um contêiner, ele executa o comando entrypoint padrão e os argumentos de comando padrão da imagem. Se você quiser modificar os argumentos de ponto de entrada e comando padrão da imagem, use os campos command e args na configuração do contêiner. O campo command especifica o comando real executado pelo contêiner. O campo args especifica os argumentos passados para esse comando.
Você pode ter no máximo 1.000 argumentos por contêiner para cada instância.
Funções exigidas
Para receber as permissões necessárias para configurar e implantar instâncias do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Desenvolvedor do Cloud Run (
roles/run.developer) na instância do Cloud Run - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na identidade de serviço
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se a instância do Cloud Run interage com Google Cloud APIs, como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
Configurar ponto de entrada e argumentos
Para substituir as configurações ENTRYPOINT e CMD padrão da imagem, defina o comando e os argumentos do ponto de entrada para uma instância do Cloud Run usando a Google Cloud CLI ou o YAML:
gcloud
Para atualizar o comando e os argumentos de inicialização de uma instância, faça o seguinte:
gcloud beta run instances update INSTANCE --command COMMAND --args ARG1,ARG-N
Substitua:
- INSTANCE: o nome da instância.
- COMMAND: o comando com que o contêiner é iniciado, se você não estiver usando o comando padrão.
- ARG1: o argumento que você está enviando para o comando do contêiner. Use uma lista delimitada por vírgulas para mais de um argumento.
Para especificar o ponto de entrada e os argumentos durante a implantação de uma instância nova ou existente:
gcloud beta run instances deploy --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Substitua IMAGE_URL por uma referência à imagem do contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
Se você quiser restaurar os padrões do contêiner para os comandos e argumentos do ponto de entrada, forneça strings vazias da seguinte maneira:
gcloud beta run instances --image IMAGE_URL --command "" --args ""
YAML
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
O exemplo a seguir contém a configuração 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
Substitua:
- INSTANCE: o nome da instância do Cloud Run.
- CONTAINER_NAME: o nome do contêiner.
IMAGE_URL: uma referência à imagem de contêiner, comous-docker.pkg.dev/cloudrun/container/hello:latest.- COMMAND: o comando com que o contêiner será iniciado se você não estiver usando o comando padrão;
- ARG1: o argumento que você está enviando para o comando do contêiner. Se você usar vários argumentos, especifique cada um em uma linha própria, por exemplo, como mostrado, ARG-N.
Crie ou atualize a instância usando o seguinte comando:
gcloud beta run instances replace instance.yaml
Configurar ordem de inicialização do contêiner para implantações sidecar
Para especificar a ordem de inicialização do contêiner em uma implantação sidecar, use o recurso de dependências de contêiner. Especifique os contêineres que têm dependências e liste os contêineres de que dependem para que eles sejam iniciados primeiro. Os contêineres sem dependências são sempre iniciados primeiro e simultaneamente.
Para usar esse recurso com êxito, use sondagens de verificação de integridade de inicialização. A sondagem de inicialização permite que o Cloud Run inspecione a integridade de um contêiner dependente, garantindo que ele seja aprovado antes de iniciar o próximo contêiner. Se você não usar verificações de integridade, os contêineres serão iniciados na ordem especificada, mesmo que os contêineres de que eles dependem não sejam iniciados.
Não há uma sondagem de verificação de integridade de inicialização padrão para instâncias.
Use a Google Cloud CLI ou o YAML para especificar a ordem de inicialização:
gcloud
Antes de usar a Google Cloud CLI para especificar a ordem de inicialização, configure uma verificação de integridade de inicialização.
-
No Google Cloud console, ative o Cloud Shell.
Na parte de baixo do Google Cloud console, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. O Cloud Shell é um ambiente shell com a Google Cloud CLI já instalada e com valores já definidos para o projeto atual. A inicialização da sessão pode levar alguns segundos.
Para implantar vários contêineres em uma instância com uma ordem de inicialização especificada, execute o 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
Substitua:
- INSTANCE: o nome da instância.
IMAGE_URL: uma referência à imagem de contêiner, comous-docker.pkg.dev/cloudrun/container/hello:latest.SIDECAR_IMAGE: uma referência à imagem do contêiner de arquivo secundário.Se você quiser configurar cada contêiner no comando de implantação, forneça a configuração de cada contêiner após os parâmetros
container.
YAML
Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:
gcloud beta run instances describe INSTANCE --format export > instance.yaml
O exemplo a seguir contém a configuração 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"]}'
Substitua:
- INSTANCE: o nome da instância do Cloud Run.
- CONTAINER1: o nome do primeiro contêiner que depende de um ou mais contêineres. É possível definir o nome do contêiner no YAML. O Cloud Run gera um nome automaticamente se nenhum for especificado.
- CONTAINER2: o nome do contêiner que precisa ser iniciado antes do CONTAINER1.
- CONTAINER3: o nome do segundo contêiner que depende de um ou mais contêineres.
No exemplo do snippet YAML, CONTAINER2 é iniciado primeiro, CONTAINER1 é iniciado em seguida e CONTAINER3 é iniciado por último.
Crie ou atualize a instância usando o seguinte comando:
gcloud beta run instances replace instance.yaml