Selecione um ambiente de execução para serviços

Esta página descreve como especificar o ambiente de execução das instâncias do Cloud Run. Por predefinição, os serviços do Cloud Run não têm um ambiente de execução especificado, o que significa que o Cloud Run seleciona o ambiente de execução com base nas funcionalidades usadas. Se não especificar um ambiente de execução para o seu serviço, o Cloud Run pode selecionar o ambiente de primeira geração ou de segunda geração.

Tenha em atenção que as tarefas do Cloud Run só usam o ambiente de execução de segunda geração e que isto não pode ser alterado para tarefas.

Consulte a documentação do conceito de ambientes de execução para receber ajuda na escolha do ambiente mais adequado para o seu serviço.

Funções necessárias

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

Se estiver a implementar um serviço ou uma função a partir do código fonte, também tem de ter funções adicionais concedidas no seu projeto e na conta de serviço do Cloud Build.

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 o seu serviço do Cloud Run interage com Google Cloud APIs, como as bibliotecas 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.

Defina e atualize o ambiente de execução

Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.

A predefinição para os serviços do Cloud Run é unspecified, o que significa que o Cloud Run seleciona um ambiente de execução adequado. Em alternativa, pode especificar um ambiente de execução. Para usar a segunda geração, tem de especificar, pelo menos, 512 MiB de memória.

Pode definir o ambiente de execução através da Google Cloud consola, da linha de comandos gcloud ou de um ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.

  3. Se estiver a configurar um novo serviço, preencha a página de definições iniciais do serviço e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.

  4. Clique no separador Contentor.

    imagem

    • Selecione o ambiente de execução pretendido através dos botões de opção. Mantenha a opção "Predefinição" para permitir que o Cloud Run selecione um ambiente de execução adequado.
  5. Clique em Criar ou Implementar.

gcloud

Pode atualizar o ambiente de execução de um determinado serviço através do seguinte comando:

gcloud run services update SERVICE --execution-environment ENVIRONMENT

Substitua SERVICE pelo nome do seu serviço e ENVIRONMENT pelo ambiente de execução pretendido. Especifique o valor gen1 para a primeira geração ou gen2 para a segunda geração.

Também pode definir o ambiente de execução durante a implementação através do comando:

gcloud run deploy --image IMAGE_URL --execution-environment ENVIRONMENT

Substitua o seguinte:

  • IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se usar o Artifact Registry, o repositório REPO_NAMEtem de já estar criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG .
  • ENVIRONMENT: o ambiente de execução pretendido. Especifique o valor gen1 para a primeira geração ou gen2 para a segunda geração.

YAML

  1. Se estiver a criar um novo serviço, ignore este passo. Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Definir a anotação run.googleapis.com/execution-environment:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          annotations:
            run.googleapis.com/execution-environment: ENVIRONMENT

    Substitua o seguinte:

    • SERVICE: o nome do seu serviço do Cloud Run.
    • ENVIRONMENT: o ambiente de execução selecionado. Especifique o valor gen1 para a primeira geração ou gen2 para a segunda geração.

    Remova a anotação run.googleapis.com/execution-environment para o comportamento predefinido.

  3. Crie ou atualize o serviço com o seguinte comando:

    gcloud run services replace service.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_service na sua configuração do Terraform:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-execution-environment"
  location = "REGION"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
    execution_environment = "ENVIRONMENT"
  }
}

Substitua o seguinte:

  • REGION: a Google Cloud região. Por exemplo, europe-west1.
  • ENVIRONMENT: EXECUTION_ENVIRONMENT_GEN1 para a primeira geração ou EXECUTION_ENVIRONMENT_GEN2 para a segunda geração.

Veja as definições do ambiente de execução

Para ver as definições atuais do ambiente de execução do seu serviço do Cloud Run:

Consola

  1. Na Google Cloud consola, aceda ao Cloud Run:

    Aceda ao Cloud Run

  2. Clique no serviço que lhe interessa para abrir a página Detalhes do serviço.

  3. Clique no separador Revisões.

  4. No painel de detalhes à direita, a definição Ambiente de execução é apresentada no separador Contentor.

gcloud

  1. Use o seguinte comando:

    gcloud run services describe SERVICE
  2. Localize a definição Execution environment na configuração devolvida.