Configure as variáveis de ambiente

Esta página descreve como configurar variáveis de ambiente para seu serviço do Cloud Run. Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem essa configuração de modo automático, a menos que você faça atualizações explícitas para alterar esse comportamento.

Funções exigidas

Para receber as permissões necessárias para configurar e implantar os serviços do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:

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

Defina as variáveis de ambiente

É possível definir variáveis de ambiente usando o console do Google Cloud, a CLI gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão:

Console

  1. No console do Google Cloud, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Clique em Implantar contêiner e selecione Serviço para configurar um novo serviço. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Ao configurar um novo serviço, preencha a página inicial de configurações de serviço conforme preferir e clique em Contêineres, volumes, redes e segurança para expandir essa página.

  4. Clique na guia Contêiner.

    imagem

    • Clique em Adicionar variável para adicionar uma nova variável e especifique o nome e o valor dela nos campos Nome e Valor.
  5. Clique em Criar ou Implantar.

gcloud

É possível especificar variáveis de ambiente ao implantar um serviço ou atualizá-las após a criação do serviço:

Para especificar variáveis de ambiente durante a implantação do serviço, use a flag --set-env-vars:

gcloud run deploy SERVICE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2

Substitua:

  • SERVICE pelo nome do serviço;
  • KEY1=VALUE1,KEY2=VALUE2, com a lista separada por vírgulas de nomes e valores de variáveis.
  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG

YAML

  1. 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 services describe SERVICE --format export > service.yaml
  2. Atualize os atributos name e value no atributo env em containers::

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
            env:
            - name: KEY-1
              value: VALUE-1
            - name: KEY-N
              value: VALUE-N

    Substituir

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL tem o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
    • KEY-1, VALUE-1 pela variável de ambiente e valor. Se quiser, adicione variáveis e valores.
    • REVISION por um novo nome de revisão ou excluí-lo (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:
      • Começa com SERVICE-
      • Contém apenas letras minúsculas, números e -
      • Não termina com um -
      • Não excede 63 caracteres
  3. Crie ou atualize o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

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

O recurso google_cloud_run_v2_service a seguir especifica a variável de ambiente foo como bar e baz como quux. Atualize as variáveis de ambiente conforme necessário para suas necessidades específicas:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloudrun-service-env-var"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

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

      # Environment variables
      env {
        name  = "foo"
        value = "bar"
      }
      env {
        name  = "baz"
        value = "quux"
      }
    }
  }
}

Definir muitas variáveis de ambiente

Se você tiver muitas variáveis de ambiente que não podem ser facilmente listadas no formato KEY1=VALUE1,KEY2=VALUE2, poderá repetir as sinalizações acima várias vezes:

   [...]
   --set-env-vars "KEY1=VALUE1" \
   --set-env-vars "KEY2=VALUE2" \
   --set-env-vars "KEY3=VALUE3"

Escape de caracteres de vírgula

Como o caractere de vírgula , é usado para dividir variáveis de ambiente, caso a variável de ambiente contenha caracteres de vírgula como valores, você precisará fazer o escape desses delimitadores especificando um caractere delimitador diferente, por exemplo, @:

--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."

Como definir variáveis de ambiente padrão no contêiner

Use a instrução ENV em um Dockerfile para definir valores padrão para variáveis de ambiente:

ENV KEY1=VALUE1,KEY2=VALUE2

Ordem de precedência: variáveis de contêiner x serviço ou job

Se você definir uma variável de ambiente padrão no contêiner e também definir uma variável de ambiente com o mesmo nome no serviço Cloud Run, o valor definido no serviço terá precedência.

Ver as configurações das variáveis de ambiente

Para ver as configurações atuais das variáveis de ambiente do serviço do Cloud Run:

Console

  1. No console do Google Cloud, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, a configuração de variáveis de ambiente está listada na guia Contêiner.

gcloud

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize a configuração de variáveis de ambiente na configuração retornada.

Atualizar variáveis de ambiente

É possível atualizar as variáveis de ambiente de execução para serviços atuais. Essa é uma abordagem não destrutiva que altera ou adiciona variáveis de ambiente de execução, mas não exclui.

Console

Para atualizar variáveis de ambiente de execução usando o Console do Google Cloud:

  1. No console do Google Cloud, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Selecione seu serviço na lista e clique em Editar e implantar uma nova revisão.

  3. Clique na guia Contêiner.

  4. Na guia Variáveis e secrets, edite os campos Nome ou Valor e clique em Concluído.

  5. Clique em Implantar.

gcloud

Para atualizar as variáveis de ambiente de um serviço, use a flag --update-env-vars:

gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2

Substitua:

  • SERVICE pelo nome do serviço;
  • KEY1=VALUE1,KEY2=VALUE2, com a lista separada por vírgulas de nomes e valores de variáveis.

Para atualizar as variáveis de ambiente de um serviço multirregional, use o comando gcloud beta run multi-region-services update.

Excluir variáveis de ambiente

Console

Para excluir variáveis de ambiente de execução usando o Console do Google Cloud, faça o seguinte:

  1. No console do Google Cloud, acesse o Cloud Run:

    Acessar o Cloud Run

  2. Selecione seu serviço na lista e clique em Editar e implantar uma nova revisão.

  3. Clique na guia Contêiner.

  4. Na guia Variáveis e secrets, mova o cursor para a esquerda do campo Valor da variável de ambiente que você está removendo para exibir o ícone Excluir e clique nele.

  5. Clique em Concluído.

  6. Clique em Implantar.

gcloud

Para remover seletivamente as variáveis de ambiente de um serviço,use a flag --remove-env-vars:

gcloud run services update SERVICE --remove-env-vars KEY1,KEY2

Substitua:

  • SERVICE pelo nome do serviço;
  • KEY1,KEY2, com a lista de nomes de variáveis separados por vírgulas.

Como alternativa, limpe todas as variáveis de ambiente definidas anteriormente com a flag --clear-env-vars:

gcloud run services update SERVICE --clear-env-vars

Substitua:

  • SERVICE pelo nome do serviço;

Código de amostra

Para ver um exemplo de código que mostra como acessar as variáveis de ambiente no código, consulte Como processar a configuração confidencial com o Secret Manager no tutorial de autenticação de usuário final.

A seguir

Você pode usar variáveis de ambiente para definir a configuração do buildpacks. Para detalhes específicos da linguagem, consulte a documentação de buildpacks com relação ao seguinte: