Nesta página, descrevemos como configurar o comando e os argumentos do ponto de entrada para um job 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 job.
Nesta página, mostramos como configurar o comando, os argumentos e a ordem de início dos contêineres nos jobs do Cloud Run. É possível configurar essas opções no consoleGoogle Cloud , na CLI gcloud ou em YAML.
Funções exigidas
Para receber as permissões necessárias para configurar os jobs do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Desenvolvedor do Cloud Run (
roles/run.developer
) no job 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 o job do Cloud Run interagir com APIs doGoogle Cloud , 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 configurar o entrypoint de comando e os argumentos para jobs, siga estas etapas:
Console
No console do Google Cloud , acesse a página de jobs do Cloud Run:
Selecione Jobs no menu e clique em Implantar contêiner para preencher a página inicial de configurações do job. Se você estiver configurando um job, selecione-o e clique em Ver e editar a configuração do job.
Clique em Contêineres, Volumes, Conexões, Segurança para expandir a página de propriedades do job.
Clique na guia Geral.
- Especifique o comando que você quer que o contêiner execute, se não for o definido no contêiner, e, opcionalmente, especifique os argumentos para o comando entrypoint.
Clique em Criar ou Atualizar.
gcloud
Para definir o comando inicial e os argumentos de um novo job:
gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N
Substituir
- JOB_NAME pelo nome do job.
- COMMAND pelo comando com que o contêiner será iniciado se você não estiver usando o comando padrão.
- ARG1 pelo argumento que você está enviando para o comando do contêiner. Para mais de um argumento,
use uma lista separada por vírgulas, por exemplo,
--args="arg1", "arg2", "arg3"
. Se os argumentos contiverem vírgulas ou caracteres especiais, consulte Usar sinais de igual ou vírgulas em argumentos. - IMAGE_URL: uma referência à imagem de contêiner. Por exemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
.
Para atualizar o comando e os argumentos de um job existente:
gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N
YAML
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Atualize os atributos
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
Substituir
- COMMAND pelo comando com que o contêiner será iniciado se você não estiver usando o comando padrão.
- ARG1 pelo argumento que você está enviando para o comando do contêiner. Se quiser, especifique outros argumentos, cada um em uma linha separada. Se os argumentos contiverem vírgulas ou caracteres especiais, consulte Usar sinais de igual ou vírgulas em argumentos.
Também é possível definir outras configurações, como variáveis de ambiente ou limites de memória.
Atualize a configuração do job que já existe:
gcloud run jobs replace job.yaml
Para limpar os comandos e argumentos do ponto de entrada que você definiu (restaurar para os padrões do contêiner), forneça strings vazias da seguinte maneira:
gcloud run jobs update JOB_NAME --command "" --args ""
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_job
na configuração do 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"]
}
}
}
}
Substitua:
- JOB_NAME pelo nome do job do Cloud Run.
- REGION com a região Google Cloud . Por exemplo,
europe-west1
. - COMMAND pelo comando com que o contêiner será iniciado se você não estiver usando o comando padrão.
- ARG1 pelo argumento que você está enviando para o comando do contêiner. Se quiser, especifique outros argumentos. Se os argumentos contiverem vírgulas ou caracteres especiais, consulte Usar sinais de igual ou vírgulas em argumentos.
Usar sinais de igual ou vírgulas em argumentos
Se você usar sinais de igual nos argumentos, insira-os usando o seguinte formato:
gcloud run deploy \
--args="--repo-allowlist=github.com/example/example_demo"
Se os argumentos usarem vírgulas, consulte Como configurar variáveis de ambiente para mais detalhes sobre como fazer escape.
Ver configurações do contêiner
Para ver as configurações atuais do contêiner para o job do Cloud Run, faça o seguinte:
Console
No console do Google Cloud , acesse a página de jobs do Cloud Run:
Clique no job em que você tem interesse para abrir a página Detalhes do job.
Clique em Ler e editar a configuração do job.
Localize a definição do contêiner nos detalhes da configuração.
gcloud
Use o comando a seguir:
gcloud run jobs describe JOB_NAME
Localize a configuração de contêiner na configuração retornada.
Configurar a 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. Os contêineres sem dependências são sempre iniciados primeiro e simultaneamente.
É possível usar o console Google Cloud , a CLI do Google Cloud ou o YAML para especificar a ordem de inicialização:
Console
No console Google Cloud , acesse a página do Cloud Run:
- Para um job atual, clique em Jobs. Em seguida, clique no job na lista e selecione Ver e editar configuração do job para mostrar o formulário Editar job.
- Para um novo job, clique em Implantar contêiner e selecione Job para mostrar o formulário Criar job.
Para um novo job, especifique o nome, o URL do contêiner, a região e o número de tarefas. Na guia Contêineres, volumes, rede, segurança, faça o seguinte:
- Configure o contêiner do job principal.
- Para adicionar cada contêiner de arquivo secundário que você está implantando, clique em Adicionar contêiner.
- Se um contêiner depender de outros contêineres, use o menu Ordem de inicialização do contêiner para selecionar os contêineres que o Cloud Run precisa iniciar antes do contêiner atual.
Para um job atual, siga estas etapas para cada contêiner:
- Analise os contêineres listados no menu Ordem de inicialização do contêiner.
- Se um contêiner depender de outros, use o menu Ordem de inicialização do contêiner para selecionar esses contêineres.
Conclua as outras configurações necessárias e clique em Criar para um novo job ou Atualizar para um job atual. Aguarde a conclusão da implantação.
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.
Para implantar vários contêineres em um job com uma ordem de inicialização especificada, execute o 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
Substitua:
- JOB pelo nome do job que você está implantando. É possível omitir esse parâmetro inteiramente, mas será solicitado o nome do job, se você omiti-lo.
- CONTAINER_1_NAME com um nome para o contêiner do job principal.
- JOB_IMAGE com uma referência à imagem do contêiner do job principal. Por exemplo,
us-docker.pkg.dev/cloudrun/container/job:latest
. - CONTAINER_2_NAME por um nome para o contêiner
do arquivo secundário, por exemplo,
sidecar
. - SIDECAR_IMAGE por uma referência à imagem de 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
.Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:
gcloud run jobs describe JOB_NAME --format export > job.yaml
Atualize o atributo
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"]}'
Substituir
- CONTAINER1 pelo nome do primeiro contêiner que depende de um ou mais contêineres. Observe que é possível definir o nome do contêiner no YAML. O Cloud Run gerará um nome automaticamente se nenhum for especificado.
- CONTAINER2 pelo nome do contêiner que precisa ser iniciado antes de CONTAINER1.
- CONTAINER3 pelo 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 o serviço usando o seguinte comando:
gcloud run jobs replace job.yaml