Usar variáveis de ambiente

Quando você define variáveis de ambiente, elas são injetadas no contêiner e podem ser acessadas pelo código. As variáveis de ambiente são definidas como pares de chave-valor.

Nomes reservados

As variáveis de ambiente definidas no contrato de ambiente de execução do contêiner são reservadas e não podem ser configuradas. Mais especificamente, a variável de ambiente PORT é injetada no seu contêiner pelo Cloud Run. Não configure isso.

Defina as variáveis de ambiente

É possível definir variáveis de ambiente para serviços ou jobs do Cloud Run.

Para serviços 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 automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

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

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, redes, segurança para expandir a página de configuração do serviço.

  4. Clique na guia Contêiner.

    image

    • Faça o seguinte:
      • Se você estiver adicionando uma variável, clique em Adicionar variável. Especifique o nome escolhido para ela e o respectivo o valor nas caixas de texto Nome e Valor.
      • Se você estiver alterando um valor para uma variável, substitua o valor atual na caixa de texto Valor pelo valor escolhido.
      • Se você estiver removendo uma ou mais variáveis de ambiente, passe o cursor à esquerda da caixa de texto Valor da variável que você está removendo para exibir o ícone de lixeira e clique nele.
  5. Clique em Criar ou Implantar.

Linha de comando

Para definir, atualizar ou remover variáveis de ambiente de um serviço existente, use o comando gcloud run services update. É possível usar qualquer uma das sinalizações a seguir, conforme necessário:

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

gcloud run deploy [SERVICE] --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2

gcloud run services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
  • Substitua SERVICE pelo nome do serviço.
  • Substitua KEY1=VALUE1,KEY2=VALUE2 pela lista separada por vírgulas dos nomes das variáveis desejadas e os valores delas.
  • IMAGE_URL por uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest; Ao usar o Artifact Registry, o URL tem o seguinte formato: REGION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG. .

YAML

É possível fazer o download e conferir as configurações de serviço usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para ver e fazer o download da configuração:

    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

    Substitua:

    • 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. Ao usar o Artifact Registry, o URL tem o seguinte formato: REGION-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. Substitua o serviço pela nova configuraçã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.

Adicione o seguinte a um recurso google_cloud_run_service em template.spec.containers na configuração do Terraform. O exemplo a seguir define a variável de ambiente foo como bar e a variável de ambiente baz como quux:

# Environment variables
# https://cloud.google.com/run/docs/configuring/environment-variables
env {
  name  = "foo"
  value = "bar"
}
env {
  name  = "baz"
  value = "quux"
}

Para jobs do Cloud Run

Para definir uma variável de ambiente para um job do Cloud Run:

Console

  1. Acesse o Cloud Run

  2. Se você estiver configurando um novo job, clique na guia Jobs e preencha a página inicial de configurações do job conforme quiser. Se você estiver configurando um job, clique nele e em Editar.

  3. Clique em Contêiner, variáveis e secrets, conexões e segurança para expandir a página de propriedades do job.

  4. Clique na guia Variáveis.

    image

    • Faça o seguinte:
      • Se você estiver adicionando uma variável, clique em Adicionar variável. Especifique o nome escolhido para ela e o respectivo o valor nas caixas de texto Nome e Valor.
      • Se você estiver alterando um valor para uma variável, substitua o valor atual na caixa de texto Valor pelo valor escolhido.
      • Se você estiver removendo uma ou mais variáveis de ambiente, passe o cursor à esquerda da caixa de texto Valor da variável que você está removendo para exibir o ícone de lixeira e clique nele.
  5. Clique em Criar ou Atualizar.

Linha de comando

Configure, atualize ou remova variáveis de ambiente de um serviço que já existe usando o comando gcloud run jobs update. É possível usar qualquer uma das sinalizações a seguir, conforme necessário:

  • --set-env-vars
  • --update-env-vars
  • --remove-env-vars
  • --clear-env-vars

    É possível especificar variáveis de ambiente ao criar um job ou ao atualizar um job:

    gcloud run jobs create JOB_NAME --image IMAGE_URL --update-env-vars KEY1=VALUE1,KEY2=VALUE2
    
    gcloud run jobs update JOB_NAME --update-env-vars KEY1=VALUE1,KEY2=VALUE2
  • Substitua JOB_NAME pelo nome do seu nó.

  • Substitua KEY1=VALUE1,KEY2=VALUE2 pela lista separada por vírgulas dos nomes das variáveis desejadas e os valores delas.

  • IMAGE_URL por uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/job:latest;

YAML

Faça o download e veja a configuração do job que já existe usando o comando gcloud run jobs describe --format export, que gera resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run jobs replace. Modifique os campos somente conforme documentado.

  1. Para ver e fazer o download da configuração:

    gcloud run jobs describe JOB_NAME --format export > job.yaml
    1. Atualize os atributos name e value em env, conforme mostrado em containers::
    apiVersion: run.googleapis.com/v1
    kind: Job
    metadata:
      name: JOB
    spec:
      template:
        spec:
          template:
            spec:
              containers:
              - image: IMAGE
                env:
                - name: KEY-1
                  value: VALUE-1
                - name: KEY-N
                  value: VALUE-N

    Substitua KEY-1 e VALUE-1 pela variável de ambiente e pelo valor. Se quiser, adicione variáveis e valores.

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

  2. Atualize a configuração do job que já existe:

    gcloud run jobs replace job.yaml

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. Acesse 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 variáveis.

Linha de comando

  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.

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

Console

  1. Acessar jobs do Cloud Run

  2. Clique no job em que você tem interesse para abrir a página Detalhes do job.

  3. Clique na guia Configuração.

  4. Localize a definição das variáveis de ambiente nos detalhes da configuração.

Linha de comando

  1. Use o comando a seguir:

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

Código de amostra

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

A seguir

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