Configure contentores para tarefas

Esta página descreve como configurar o comando de ponto de entrada e os argumentos para uma tarefa do Cloud Run.

Quando o Cloud Run inicia um contentor, executa o comando de ponto de entrada predefinido da imagem e os argumentos de comando predefinidos. Se quiser substituir o ponto de entrada predefinido e os argumentos de comando da imagem, pode usar os campos command e args na configuração do contentor. O campo command especifica o comando real executado pelo contentor. O campo args especifica os argumentos transmitidos a esse comando.

Tenha em atenção que pode ter um máximo de 1000 argumentos por contentor para cada tarefa.

Esta página mostra como configurar o comando, os argumentos e a ordem de início dos contentores nos seus trabalhos do Cloud Run. Pode configurar estas definições através da Google Cloud consola, da CLI do Google Cloud ou do YAML.

Funções necessárias

Para receber as autorizações de que precisa para configurar tarefas do Cloud Run, peça ao seu administrador para lhe conceder as seguintes funções de IAM:

Para ver uma lista de funções e autorizações de IAM associadas ao Cloud Run, consulte os artigos Funções de IAM do Cloud Run e Autorizações de IAM do Cloud Run. Se a sua tarefa do Cloud Run interagir com Google Cloud APIs, como as bibliotecas de cliente da Google Cloud, consulte o guia de configuração da identidade do serviço. Para mais informações sobre a atribuição de funções, consulte as autorizações de implementação e faça a gestão do acesso.

Configure o ponto de entrada e os argumentos

Para configurar o ponto de entrada de comandos e os argumentos para tarefas:

Consola

  1. Na Google Cloud consola, aceda à página Tarefas do Cloud Run:

    Aceda ao Cloud Run

  2. Selecione Tarefas no menu e clique em Implementar contentor para preencher a página de definições iniciais da tarefa. Se estiver a configurar uma tarefa existente, selecione a tarefa e, de seguida, clique em Editar.

  3. Clique em Recipientes, volumes, ligações, segurança para expandir a página de propriedades da tarefa.

  4. Clique no separador Geral.

    imagem

    • Especifique o comando que quer que o contentor execute, se não for o comando definido no seu contentor, e especifique opcionalmente os argumentos para o comando do ponto de entrada.
  5. Clique em Criar ou Atualizar.

gcloud

  1. Para definir o comando de início e os argumentos para uma nova tarefa:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --command COMMAND --args ARG1,ARG-N

    Substituir

    • JOB_NAME com o nome do seu trabalho.
    • COMMAND com o comando com o qual o contentor deve ser iniciado se não estiver a usar o comando predefinido.
    • ARG1 com o argumento que está a enviar para o comando do contentor. Para mais de um argumento, use uma lista separada por vírgulas, por exemplo, --args="arg1", "arg2", "arg3". Se os seus argumentos contiverem vírgulas ou carateres especiais, consulte o artigo Use sinais de igual ou vírgulas em argumentos.
    • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.

Para atualizar o comando e os argumentos de uma tarefa existente:

gcloud run jobs update JOB_NAME --command COMMAND --args ARG1,ARG-N 

YAML

  1. Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
  2. Atualize os atributos args: e command:

    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 com o comando com o qual o contentor deve ser iniciado se não estiver a usar o comando predefinido.
    • ARG1 com o argumento que está a enviar para o comando do contentor. Opcionalmente, especifique argumentos adicionais, cada um numa linha separada. Se os seus argumentos contiverem vírgulas ou carateres especiais, consulte o artigo Use sinais de igual ou vírgulas em argumentos.

    Também pode especificar mais configurações, como variáveis de ambiente ou limites de memória.

  3. Atualize a configuração da tarefa existente:

    gcloud run jobs replace job.yaml

Para limpar todos os comandos e argumentos de ponto de entrada que definiu (restaurar as predefinições do contentor), forneça strings vazias da seguinte forma:

gcloud run jobs update JOB_NAME --command "" --args "" 

Terraform

Para saber como aplicar ou remover uma configuração do Terraform, consulte os comandos básicos do Terraform.

Adicione o seguinte a um recurso google_cloud_run_v2_job na sua 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"]
     }
   }
 }
}

Substituir:

  • JOB_NAME com o nome da tarefa do Cloud Run.
  • REGION com a região Google Cloud . Por exemplo, europe-west1.
  • COMMAND com o comando com o qual o contentor deve começar se não estiver a usar o comando predefinido.
  • ARG1 com o argumento que está a enviar para o comando do contentor. Opcionalmente, especifique argumentos adicionais. Se os seus argumentos contiverem vírgulas ou carateres especiais, consulte o artigo Use sinais de igual ou vírgulas em argumentos.

Use sinais de igual ou vírgulas nos argumentos

Se usar sinais de igual nos argumentos, forneça-os no seguinte formato:

gcloud run deploy  \
  --args="--repo-allowlist=github.com/example/example_demo"

Se os seus argumentos usarem vírgulas, consulte a secção Configurar variáveis de ambiente para ver detalhes sobre como ignorá-las.

Ver definições do contentor

Para ver as definições atuais do contentor para a tarefa do Cloud Run:

Consola

  1. Na Google Cloud consola, aceda à página Tarefas do Cloud Run:

    Aceda às tarefas do Cloud Run

  2. Clique no trabalho que lhe interessa para abrir a página Detalhes do trabalho.

  3. Clique em Ver e editar configuração da tarefa.

  4. Localize a definição do contentor nos detalhes de configuração.

gcloud

  1. Use o seguinte comando:

    gcloud run jobs describe JOB_NAME
  2. Localize a definição do contentor na configuração devolvida.

Configure a ordem de início do contentor para implementações de sidecar

Para especificar a ordem de início do contentor numa implementação sidecar, usa a funcionalidade de dependências de contentores. Especifica todos os contentores que têm dependências e indica os contentores dos quais dependem. Os contentores que não têm dependências são sempre iniciados primeiro e em simultâneo.

Pode usar a Google Cloud consola, a Google Cloud CLI ou o YAML para especificar a ordem de início:

Consola

  1. Na Google Cloud consola, aceda à página do Cloud Run:

    Aceda ao Cloud Run

    • Para um trabalho existente, clique em Trabalhos. Em seguida, clique na tarefa na lista e selecione Ver e editar configuração da tarefa para apresentar o formulário Editar tarefa.
    • Para uma nova tarefa, clique em Implementar contentor e selecione Tarefa para apresentar o formulário Criar tarefa.
  2. Para uma nova tarefa, especifique o nome da tarefa, o URL do contentor da tarefa, a região e o número de tarefas. No separador Contentores, volumes, trabalhar em rede, segurança, faça o seguinte:

    1. Configure o contentor de tarefas principal.
    2. Para adicionar cada contentor auxiliar que está a implementar, clique em Adicionar contentor.
    3. Se um contentor depender de outros contentores, use o menu Ordem de início do contentor para selecionar os contentores que o Cloud Run tem de iniciar antes do contentor atual.
  3. Para uma tarefa existente, siga estes passos para cada contentor:

    1. Examine os contentores apresentados no menu Ordem de arranque do contentor.
    2. Se um contentor depender de outros contentores, use o menu Ordem de arranque do contentor para selecionar esses contentores.
  4. Conclua as outras configurações necessárias e, de seguida, clique em Criar para uma nova tarefa ou em Atualizar para uma tarefa existente. Aguarde até que a implementação esteja concluída.

gcloud

  1. In the Google Cloud console, activate Cloud Shell.

    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.

  2. Para implementar vários contentores num trabalho com uma ordem de arranque 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

    Substituir:

    • JOB com o nome da tarefa para a qual está a fazer a implementação. Pode omitir este parâmetro por completo, mas é-lhe pedido o nome do trabalho se o omitir.
    • CONTAINER_1_NAME com um nome para o contentor de tarefas principal.
    • JOB_IMAGE com uma referência à imagem do contentor de tarefas principal, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • CONTAINER_2_NAME com um nome para o contentor sidecar, por exemplo, sidecar.
    • SIDECAR_IMAGE com uma referência à imagem do contentor sidecar.

    Se quiser configurar cada contentor no comando de implementação, forneça a configuração de cada contentor após os parâmetros container.

  3. YAML

    1. Se estiver a criar uma nova tarefa, ignore este passo. Se estiver a atualizar uma tarefa existente, transfira a respetiva configuração YAML:

      gcloud run jobs describe JOB_NAME --format export > job.yaml
    2. 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 com o nome do primeiro contentor que depende de um ou mais contentores. Tenha em atenção que pode definir o nome do contentor no YAML: o Cloud Run gera automaticamente um nome se não for especificado.
      • CONTAINER2 com o nome do contentor que tem de ser iniciado antes de CONTAINER1.
      • CONTAINER3 com o nome do segundo contentor que depende de um ou mais contentores.

      No exemplo apresentado no fragmento YAML, CONTAINER2 é iniciado primeiro, CONTAINER1 é iniciado em segundo lugar e CONTAINER3 é iniciado por último.

    3. Crie ou atualize a tarefa através do seguinte comando:

      gcloud run jobs replace job.yaml