Crie trabalhos

Esta página descreve como criar e atualizar tarefas do Cloud Run a partir de uma imagem de contentor existente. Ao contrário de um serviço do Cloud Run, que ouve e publica pedidos, uma tarefa do Cloud Run apenas executa as respetivas tarefas e termina quando conclui a execução. Um trabalho não escuta nem responde a pedidos.

Depois de criar ou atualizar uma tarefa, pode:

Pode estruturar um trabalho como uma única tarefa ou como várias tarefas independentes (até 10 000 tarefas) que podem ser executadas em paralelo. Cada tarefa executa uma instância de contentor e pode ser configurada para repetir em caso de falha. Cada tarefa tem conhecimento do seu índice, que é armazenado na variável de ambiente CLOUD_RUN_TASK_INDEX. A contagem geral de tarefas é armazenada na variável de ambiente CLOUD_RUN_TASK_COUNT. Se estiver a processar dados em paralelo, o seu código é responsável por determinar que tarefa processa que subconjunto dos dados.

Pode definir limites de tempo nas tarefas e especificar o número de novas tentativas em caso de falha da tarefa. Se alguma tarefa exceder o número máximo de novas tentativas, essa tarefa é marcada como com falhas. Se alguma tarefa falhar, a execução do trabalho é marcada como falhada depois de o Cloud Run ter tentado executar todas as tarefas.

Por predefinição, cada tarefa é executada durante um máximo de 10 minutos. Pode modificar o valor predefinido alterando a definição de tempo limite da tarefa, até um máximo de 168 horas (7 dias). O suporte para limites de tempo superiores a 24 horas está disponível na pré-visualização.

Não existe um limite de tempo explícito para a execução de uma tarefa: a execução da tarefa é concluída após a conclusão de todas as tarefas.

As tarefas usam o ambiente de execução de segunda geração.

Funções necessárias

Para receber as autorizações de que precisa para criar tarefas do Cloud Run, peça ao seu administrador para lhe conceder as seguintes funções da 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.

Imagens e registos de contentores suportados

Pode usar diretamente imagens de contentores armazenadas no Artifact Registry ou no Docker Hub. A Google recomenda a utilização do Artifact Registry. As imagens do Docker Hub são armazenadas em cache durante, no máximo, uma hora.

Pode usar imagens de contentores de outros registos públicos ou privados (como o JFrog Artifactory, o Nexus ou o GitHub Container Registry) configurando um repositório remoto do Artifact Registry.

Só deve considerar o Docker Hub para implementar imagens de contentores populares, como imagens oficiais do Docker ou imagens de OSS patrocinadas pelo Docker. Para uma maior disponibilidade, a Google recomenda a implementação destas imagens do Docker Hub através de um repositório remoto do Artifact Registry.

O Cloud Run não suporta camadas de imagens de contentores com mais de 9,9 GB quando implementa a partir do Docker Hub ou de um repositório remoto do Artifact Registry com um registo externo.

Crie um novo trabalho

Pode criar uma nova tarefa através da Google Cloud consola, da Google Cloud CLI, do YAML ou do Terraform.

Consola

Para criar uma nova tarefa:

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

    Aceda ao Cloud Run

  2. Selecione Tarefas no menu e clique em Implementar contentor para apresentar o formulário Criar tarefa.

    1. No formulário, especifique a imagem do contentor que contém o código do trabalho ou selecione a partir de uma lista de contentores implementados anteriormente.
    2. O nome da tarefa é gerado automaticamente a partir da imagem do contentor. Pode editar ou alterar o nome da tarefa conforme necessário. Não é possível alterar o nome de uma tarefa depois de a tarefa ser criada.
    3. Selecione a região onde quer que o emprego esteja localizado. O seletor de regiões realça as regiões com o menor impacto de carbono.
    4. Especifique o número de tarefas que quer executar no trabalho. Todas as tarefas têm de ser bem-sucedidas para que o trabalho seja bem-sucedido. Por predefinição, as tarefas são executadas em paralelo.
  3. Clique em Recipientes, volumes, trabalhar em rede, segurança para definir propriedades adicionais da tarefa.

    • Em Capacidade de tarefas:
    1. No menu Memória, especifique a quantidade de memória necessária. O valor predefinido é o mínimo necessário, 512 MiB.
    2. No menu CPU, especifique a quantidade de CPU necessária. A predefinição é o mínimo necessário, ou seja, 1 CPU.
    3. Em Limite de tempo da tarefa, especifique o período máximo em segundos durante o qual a tarefa pode ser executada, até 168 horas (7 dias). O suporte para limites de tempo superiores a 24 horas está disponível na pré-visualização. Cada tarefa tem de ser concluída dentro deste período. A predefinição é 10 minutos (600 segundos).

    4. Em Número de novas tentativas por tarefa com falha, especifique o número de novas tentativas em caso de falhas de tarefas. O valor predefinido é 3 novas tentativas.

    • Em Paralelismo:

      1. Na maioria dos casos, pode selecionar Executar o maior número possível de tarefas em simultâneo.
      2. Se precisar de definir um limite inferior devido a restrições de escalabilidade nos recursos aos quais a sua tarefa acede, selecione Limitar o número máximo de tarefas simultâneas e especifique o número de tarefas simultâneas no campo Limite de paralelismo personalizado.
  4. Opcionalmente, configure outras definições nos separadores adequados:

  5. Quando terminar a configuração da tarefa, clique em Criar para criar a tarefa no Cloud Run.

  6. Para executar a tarefa, consulte executar tarefas ou executar tarefas de acordo com uma programação.

gcloud

Para usar a linha de comandos, tem de ter configurado a CLI gcloud.

Para criar uma nova tarefa:

  1. Execute o comando:

    gcloud run jobs create JOB_NAME --image IMAGE_URL OPTIONS
    Em alternativa, use o comando deploy:
    gcloud run jobs deploy JOB_NAME --image IMAGE_URL OPTIONS

    Substitua o seguinte:

    • JOB_NAME: o nome da tarefa que quer criar. Se omitir este parâmetro, é-lhe pedido o nome do trabalho quando executar o comando.
    • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • Opcionalmente, substitua OPTIONS por qualquer uma das seguintes opções:

      Opção Descrição
      --tasks Aceita números inteiros iguais ou superiores a 1. A predefinição é 1; o máximo é 10 000. A cada tarefa são fornecidas as variáveis de ambiente CLOUD_RUN_TASK_INDEX com um valor entre 0 e o número de tarefas menos 1, juntamente com CLOUD_RUN_TASK_COUNT, que é o número de tarefas
      --max-retries O número de vezes que uma tarefa com falha é repetida. Quando qualquer tarefa falha além deste limite, toda a tarefa é marcada como falhada. Por exemplo, se estiver definido como 1, uma tarefa com falha é repetida uma vez, para um total de duas tentativas. A predefinição é 3. Aceita números inteiros de 0 a 10.
      --task-timeout Aceita uma duração como "2s". A predefinição é de 10 minutos e o máximo é de 168 horas (7 dias). O suporte para limites de tempo superiores a 24 horas está disponível na pré-visualização.
      --parallelism O número máximo de tarefas que podem ser executadas em paralelo. Por predefinição, as tarefas são iniciadas o mais rapidamente possível em paralelo. Consulte Paralelismo para ver o intervalo de valores.
      --execute-now Se estiver definido, imediatamente após a criação da tarefa, é iniciada uma execução da tarefa. Equivalente a chamar gcloud run jobs create seguido de gcloud run jobs execute.

      Além das opções acima, também pode especificar mais configurações, como variáveis de ambiente ou limites de memória.

      Para ver uma lista completa das opções disponíveis quando cria uma tarefa, consulte a documentação da linha de comandos do gcloud run jobs create.

  2. Aguarde a conclusão da criação da tarefa. É apresentada uma mensagem de êxito após a conclusão bem-sucedida.

  3. Para executar a tarefa, consulte executar tarefas ou executar tarefas de acordo com uma programação.

YAML

Pode armazenar a especificação do trabalho num ficheiro YAML e, em seguida, implementá-lo com a CLI gcloud.

  1. Crie um novo ficheiro job.yaml com este conteúdo:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE_URL

    Substitua o seguinte:

    • JOB: o nome da sua tarefa do Cloud Run. Os nomes das tarefas têm de ter 49 carateres ou menos e têm de ser exclusivos por região e projeto.
    • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.

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

  2. Implemente a nova tarefa através do seguinte comando:

    gcloud run jobs replace job.yaml

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     = "cloud-run-job"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  template {
    template {
      containers {
        image = "us-docker.pkg.dev/cloudrun/container/job:latest"
      }
    }
  }
}

Bibliotecas cliente

Para criar uma tarefa a partir de código:

API REST

Para criar uma tarefa, envie um POST pedido HTTP para solicitar o ponto final da API Cloud Run Admin jobs.

Por exemplo, usar curl:

curl -H "Content-Type: application/json" \
  -H "Authorization: Bearer ACCESS_TOKEN" \
  -X POST \
  -d '{template: {template: {containers: [{image: "IMAGE_URL"}]}}}' \
  https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs?jobId=JOB_NAME

Substitua o seguinte:

  • ACCESS_TOKEN: um token de acesso válido para uma conta que tenha as autorizações de IAM para criar tarefas. Por exemplo, se tiver sessão iniciada no gcloud, pode obter um token de acesso através de gcloud auth print-access-token. A partir de uma instância de contentor do Cloud Run, pode obter um token de acesso através do servidor de metadados da instância de contentor.
  • JOB_NAME: o nome da tarefa que quer criar.
  • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
  • REGION: a Google Cloud região da tarefa.
  • PROJECT_ID: o Google Cloud ID do projeto.

Localizações do Cloud Run

O Cloud Run é regional, o que significa que a infraestrutura que executa os seus serviços do Cloud Run está localizada numa região específica e é gerida pela Google para estar disponível de forma redundante em todas as zonas dessa região.

O cumprimento dos requisitos de latência, disponibilidade ou durabilidade são fatores principais para selecionar a região onde os seus serviços do Cloud Run são executados. Geralmente, pode selecionar a região mais próxima dos seus utilizadores, mas deve considerar a localização dos outros Google Cloudprodutos usados pelo seu serviço do Cloud Run. A utilização Google Cloud de produtos em conjunto em várias localizações pode afetar a latência do seu serviço, bem como o custo.

O Cloud Run está disponível nas seguintes regiões:

Sujeito aos preços de Nível 1

  • asia-east1 (Taiwan)
  • asia-northeast1 (Tóquio)
  • asia-northeast2 (Osaca)
  • asia-south1 (Mumbai, Índia)
  • europe-north1 (Finlândia) ícone de folha Baixo CO2
  • europe-north2 (Estocolmo) ícone de folha Baixo CO2
  • europe-southwest1 (Madrid) ícone de folha Baixo CO2
  • europe-west1 (Bélgica) ícone de folha Baixo CO2
  • europe-west4 (Países Baixos) ícone de folha Baixo CO2
  • europe-west8 (Milão)
  • europe-west9 (Paris) ícone de folha Baixo CO2
  • me-west1 (Telavive)
  • northamerica-south1 (México)
  • us-central1 (Iowa) ícone de folha Baixo CO2
  • us-east1 (Carolina do Sul)
  • us-east4 (Virgínia do Norte)
  • us-east5 (Columbus)
  • us-south1 (Dallas) ícone de folha Baixo CO2
  • us-west1 (Oregão) ícone de folha Baixo CO2

Sujeito aos preços de Nível 2

  • africa-south1 (Joanesburgo)
  • asia-east2 (Hong Kong)
  • asia-northeast3 (Seul, Coreia do Sul)
  • asia-southeast1 (Singapura)
  • asia-southeast2 (Jacarta)
  • asia-south2 (Deli, Índia)
  • australia-southeast1 (Sydney)
  • australia-southeast2 (Melbourne)
  • europe-central2 (Varsóvia, Polónia)
  • europe-west10 (Berlim) ícone de folha Baixo CO2
  • europe-west12 (Turim)
  • europe-west2 (Londres, Reino Unido) ícone de folha Baixo CO2
  • europe-west3 (Frankfurt, Alemanha)
  • europe-west6 (Zurique, Suíça) ícone de folha Baixo CO2
  • me-central1 (Doha)
  • me-central2 (Dammam)
  • northamerica-northeast1 (Montreal) ícone de folha Baixo CO2
  • northamerica-northeast2 (Toronto) ícone de folha Baixo CO2
  • southamerica-east1 (São Paulo, Brasil) ícone de folha Baixo CO2
  • southamerica-west1 (Santiago, Chile) ícone de folha Baixo CO2
  • us-west2 (Los Angeles)
  • us-west3 (Salt Lake City)
  • us-west4 (Las Vegas)

Se já criou um serviço do Cloud Run, pode ver a região no painel de controlo do Cloud Run na Google Cloud consola.

Quando cria uma nova tarefa, o agente de serviço do Cloud Run tem de poder aceder ao contentor, o que acontece por predefinição.

Atualize uma tarefa existente

A alteração de quaisquer definições de configuração requer a atualização da tarefa, mesmo que não haja alterações à imagem do contentor. Tenha em atenção que, para todas as definições inalteradas, as definições anteriores continuam a ser usadas.

Pode atualizar uma tarefa existente através da Google Cloud consola, da CLI Google Cloud, do YAML ou do Terraform.

Consola

Para atualizar uma tarefa existente:

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

    Aceda ao Cloud Run

  2. Clique no separador Tarefas para apresentar a lista de tarefas.

  3. Clique na tarefa para apresentar a página Detalhes da tarefa.

  4. Clique em Edit.

  5. Se fez alterações ao código do trabalho, especifique o novo resumo da imagem do contentor.

  6. Opcionalmente, altere o número de tarefas no trabalho, se necessário.

  7. Opcionalmente, clique em Recipientes, volumes, rede, segurança para atualizar quaisquer propriedades adicionais da tarefa:

    • Em Capacidade de tarefas:
    1. No menu Memória, especifique a quantidade de memória necessária. O valor predefinido é o mínimo necessário, 512 MiB.
    2. No menu CPU, especifique a quantidade de CPU necessária. A predefinição é o mínimo necessário, ou seja, 1 CPU.
    3. Em Limite de tempo da tarefa, especifique o período máximo em segundos durante o qual a tarefa pode ser executada, até 168 horas (7 dias). O suporte para limites de tempo superiores a 24 horas está disponível na pré-visualização. Cada tarefa tem de ser concluída dentro deste período. A predefinição é 10 minutos (600 segundos).
    4. Em Número de novas tentativas por tarefa com falha, especifique o número de novas tentativas em caso de falhas de tarefas. A predefinição são 3 novas tentativas.
    • Em Paralelismo:

      1. Na maioria dos casos, pode selecionar Executar o maior número possível de tarefas em simultâneo.
      2. Se precisar de definir um limite inferior devido a restrições de escalabilidade nos recursos aos quais a sua tarefa acede, selecione Limitar o número de tarefas simultâneas e especifique o número máximo de tarefas simultâneas no campo Limite de paralelismo personalizado.
  8. Opcionalmente, configure outras definições nos separadores adequados:

  9. Quando terminar de configurar a tarefa, clique em Guardar para criar a tarefa no Cloud Run e aguarde que a criação da tarefa termine.

  10. Para executar a tarefa, consulte executar tarefas ou executar tarefas de acordo com uma programação.

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. Execute o comando:

    gcloud run jobs update JOB_NAME

    Substitua o seguinte:

    • JOB_NAME: o nome da tarefa que quer atualizar.
    • Opcionalmente, substitua OPTIONS pelas seguintes opções:

      Opção Descrição
      --tasks Aceita números inteiros iguais ou superiores a 1. A predefinição é 1; o máximo é 10 000. A cada tarefa são fornecidas as variáveis de ambiente CLOUD_RUN_TASK_INDEX com um valor entre 0 e o número de tarefas menos 1, juntamente com CLOUD_RUN_TASK_COUNT, que é o número de tarefas
      --max-retries O número de vezes que uma tarefa com falha é repetida. Quando qualquer tarefa falha além deste limite, toda a tarefa é marcada como falhada. Por exemplo, se estiver definido como 1, uma tarefa com falha é repetida uma vez, para um total de duas tentativas. A predefinição é 3. Aceita números inteiros de 0 a 10.
      --task-timeout Aceita uma duração como "2s". A predefinição é de 10 minutos e o máximo é de 168 horas (7 dias). O suporte para limites de tempo superiores a 24 horas está disponível na pré-visualização.
      --parallelism O número máximo de tarefas que podem ser executadas em paralelo. Por predefinição, as tarefas são iniciadas o mais rapidamente possível, em paralelo. Consulte Paralelismo para ver o intervalo de valores.

    Além das opções anteriores, pode definir outras definições de configuração opcionais:

    Para ver uma lista completa das opções disponíveis quando cria uma tarefa, consulte a documentação da linha de comandos do gcloud run jobs create.

  3. Aguarde que a atualização da tarefa termine. Após a conclusão com êxito, é apresentada uma mensagem de êxito semelhante à seguinte:

    Job [JOB_NAME] has been successfully updated.
    View details about this job by running `gcloud run jobs describe JOB_NAME`.
    See logs for this execution at: https://console.cloud.google.com/logs/viewer?project=PROJECT_ID&resource=cloud_run_revision/service_name/JOB_NAME
  4. Para executar a tarefa, consulte executar tarefas ou executar tarefas de acordo com uma programação.

  5. YAML

    Se precisar de transferir ou ver a configuração de uma tarefa existente, use o seguinte comando para guardar os resultados num ficheiro YAML:

    gcloud run jobs describe JOB --format export > job.yaml

    A partir de um ficheiro YAML de configuração de tarefas, modifique os spec.templateatributos secundários conforme necessário para atualizar as definições de configuração e, em seguida, volte a implementar:

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

      gcloud run jobs replace job.yaml
    2. Para executar a tarefa, consulte executar tarefas ou executar tarefas de acordo com uma programação.

    Terraform

    Faça alterações à configuração da tarefa no ficheiro main.tf com o comando terraform apply. Estão disponíveis instruções detalhadas do Terraform para:

    Para mais informações, consulte as opções da linha de comandos terraform apply.

    Bibliotecas cliente

    Para atualizar uma tarefa existente a partir do código:

    API REST

    Para atualizar uma tarefa, envie um pedido HTTP para o ponto final da jobsAPI Admin do Cloud Run.PATCH

    Por exemplo, usar curl:

    curl -H "Content-Type: application/json" \
      -H "Authorization: Bearer ACCESS_TOKEN" \
      -X PATCH \
      -d '{template: {template: {containers: [{image: "IMAGE_URL"}]}}}' \
      https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/jobs/JOB_NAME

    Substitua o seguinte:

    • ACCESS_TOKEN: um token de acesso válido para uma conta que tenha as autorizações do IAM para atualizar tarefas. Por exemplo, se tiver sessão iniciada no gcloud, pode obter um token de acesso através de gcloud auth print-access-token. A partir de uma instância de contentor do Cloud Run, pode obter um token de acesso através do servidor de metadados da instância de contentor.
    • JOB_NAME: o nome da sua profissão que quer atualizar.
    • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • REGION: a Google Cloud região da tarefa.
    • PROJECT_ID: o Google Cloud ID do projeto.

Exemplo de código

Para ver exemplos de código que mostram tarefas, consulte os inícios rápidos específicos do idioma.

Implemente vários contentores num trabalho (sidecars)

Numa implementação de tarefas do Cloud Run com vários contentores (sidecars), existe um contentor de tarefas principal que encapsula a configuração da tarefa e um ou mais contentores sidecar.

Pode implementar até 10 contentores por instância, incluindo o contentor de tarefas principal. Todos os contentores numa instância partilham o mesmo espaço de nomes de rede e podem partilhar ficheiros através de um volume partilhado na memória.

Exemplos de utilização

Os sidecars são usados frequentemente para os seguintes exemplos de utilização:

  • Obter métricas personalizadas de tarefas do Cloud Run e enviá-las para um back-end especificado à sua escolha através de agentes de recolha, como o Prometheus ou o Opentelemetry.
  • Permitir que as aplicações sem lógica do Hashicorp Vault incorporada usem segredos estáticos e dinâmicos provenientes do Vault através do Vault sidecar.

Implemente uma tarefa com contentores auxiliares

Pode implementar vários sidecars num trabalho do Cloud Run através da Google Cloud consola, da Google Cloud CLI ou de YAML.

Clique no separador para ver instruções sobre como usar a ferramenta da sua escolha.

Consola

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

    Aceda ao Cloud Run

  2. Para implementar num trabalho existente, clique em Trabalhos, localize o trabalho na lista de trabalhos e clique para o abrir. Em seguida, clique em Ver e editar configuração para apresentar o formulário de edição de trabalhos.

  3. Para um novo trabalho, clique em Implementar contentor e, de seguida, em Trabalho. Indique o nome da tarefa e o URL da imagem do contentor da tarefa principal que quer implementar.

  4. Clique em Recipientes, volumes, trabalhar em rede, segurança

  5. No cartão Editar contentor, configure o contentor de tarefas principal conforme necessário.

  6. Clique em Adicionar contentor e configure um contentor sidecar que quer adicionar juntamente com o contentor de trabalho principal. Se o sidecar depender de outro contentor no serviço, indique-o no menu pendente Ordem de arranque do contentor. Repita este passo para cada contentor secundário que estiver a implementar.

  7. Clique em Criar para um novo serviço ou em Atualizar para uma tarefa existente e, em seguida, aguarde que a implementação termine.

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 numa tarefa, execute o seguinte comando:

    gcloud run jobs create JOB \
     --container JOB_CONTAINER_NAME \
     --image='IMAGE_URL' \
     --container SIDECAR_CONTAINER_NAME \
     --image='SIDECAR_IMAGE'

    Substitua o seguinte:

    • JOB: 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.
    • JOB_CONTAINER_NAME: um nome para o contentor de tarefas principal.
    • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIDECAR_CONTAINER_NAME: um nome para o contentor auxiliar, por exemplo, sidecar.
    • SIDECAR_IMAGE: uma referência à imagem do contentor auxiliar.

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

    gcloud run jobs create JOB \
      --container CONTAINER_1_NAME \
      --image='IMAGE_URL' \
      --set-env-vars=KEY=VALUE \
      --container SIDECAR_CONTAINER_NAME \
      --image='SIDECAR_IMAGE' \
      --set-env-vars=KEY_N=VALUE_N
  3. Aguarde até que a implementação dos trabalhos termine. Após a conclusão com êxito, é apresentada uma mensagem de êxito.

  4. YAML

    Estas instruções mostram um ficheiro YAML básico para a sua tarefa do Cloud Run com sidecars. Crie um ficheiro denominado job.yaml com o seguinte conteúdo:

    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          containers:
          - image: IMAGE_URL
          - image: SIDECAR_IMAGE
          

    Substitua o seguinte:

    • JOB com o nome do contentor da tarefa principal do Cloud Run. Os nomes das tarefas têm de ter 49 carateres ou menos.
    • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIDECAR_IMAGE: uma referência à imagem do contentor auxiliar.

    Depois de atualizar o YAML para incluir os contentores de entrada e auxiliares, implemente-o no Cloud Run através do comando:

    gcloud run jobs replace job.yaml

    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 = "europe-west1"
    
      template {
        template {
          containers {
            name = "CONTAINER_NAME"
            image = "IMAGE_URL"
          }
          containers {
            name = "SIDECAR_CONTAINER_NAME"
            image = "SIDECAR_IMAGE_URL"
          }
        }
      }
    }
    
    

    Substitua o seguinte:

    • JOB_NAME: o nome da sua tarefa do Cloud Run.
    • CONTAINER_NAME: o nome do contentor.
    • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest.
    • SIDECAR_CONTAINER_NAME: o nome do contentor auxiliar.
    • SIDECAR_IMAGE_URL: uma referência à imagem do contentor auxiliar.

Funcionalidades disponíveis para implementações com sidecars

Pode especificar a ordem de arranque do contentor numa implementação com vários contentores, se tiver dependências que exijam que alguns contentores sejam iniciados antes de outros contentores na implementação.

Se tiver contentores que dependam de outros contentores, tem de usar verificações de estado de arranque na sua implementação. Se usar verificações de estado, o Cloud Run segue a ordem de início do contentor e inspeciona o estado de cada contentor, garantindo que cada um é aprovado com êxito antes de o Cloud Run iniciar o contentor seguinte na ordem. Se não usar verificações de saúde, os contentores saudáveis são iniciados mesmo que os contentores dos quais dependem não estejam em execução.

Vários contentores numa única instância podem aceder a um volume na memória partilhado, que é acessível a cada contentor através de pontos de montagem que cria.

O que se segue?

Depois de criar ou atualizar uma tarefa, pode fazer o seguinte: