Configurar variáveis de ambiente para instâncias

Nesta página, descrevemos como configurar variáveis de ambiente para sua instância do Cloud Run.

Funções exigidas

Para receber as permissões necessárias para configurar e implantar instâncias 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 a instância do Cloud Run interage com Google Cloud APIs, 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 para uma instância do Cloud Run usando a Google Cloud CLI ou o YAML:

gcloud

Para especificar variáveis de ambiente ao criar a instância, use a --set-env-vars sinalização:

gcloud beta run instances create INSTANCE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2

Substitua:

  • INSTANCE: o nome da instância
  • IMAGE_URL: uma referência à imagem de contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  • KEY1=VALUE1,KEY2=VALUE2: a lista separada por vírgulas de nomes e valores de variáveis

Para mais informações sobre como definir várias variáveis de ambiente ou fazer o escape de caracteres especiais, consulte Definir várias variáveis de ambiente.

YAML

  1. Se você estiver criando uma nova instância, pule esta etapa. Se você estiver atualizando uma instância, baixe a configuração YAML correspondente:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. O exemplo a seguir contém a configuração YAML:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - env:
        - name: KEY
          value: VALUE
        - name: KEY2
          value: VALUE2
        image: IMAGE

    Substitua:

    • INSTANCE: o nome da instância do Cloud Run.
    • KEY e VALUE: o nome e os valores das variáveis de ambiente.
    • IMAGE_URL: uma referência à imagem de contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  3. Crie ou atualize a instância usando o seguinte comando:

    gcloud beta run instances replace instance.yaml

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

Use a ENV instrução 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 instância

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 na instância do Cloud Run, o valor definido na instância terá precedência.

Definir várias variáveis de ambiente

É possível definir várias variáveis de ambiente usando o arquivo .env ou a sinalização --set-env-vars.

Definir várias variáveis de ambiente usando o arquivo .env

gcloud

Para especificar várias variáveis de ambiente no arquivo .env, execute o seguinte comando:

gcloud beta run instances create INSTANCE --image IMAGE_URL --env-vars-file=ENV_FILE_PATH

Substitua:

  • INSTANCE: o nome da instância.
  • IMAGE_URL: uma referência à imagem de contêiner, como us-docker.pkg.dev/cloudrun/container/hello:latest.
  • ENV_FILE_PATH: caminho para o arquivo .env.

Definir várias variáveis de ambiente usando a sinalização --set-env-vars

Se você tiver várias variáveis de ambiente que não podem ser listadas no formato KEY1=VALUE1,KEY2=VALUE2, repita a sinalização --set-env-vars 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=..."

Atualizar variáveis de ambiente

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

É possível atualizar variáveis de ambiente usando a Google Cloud CLI ou o YAML:

gcloud

Para atualizar as variáveis de ambiente de uma instância, use a --update-env-vars sinalização:

gcloud beta run instances update INSTANCE --update-env-vars KEY1=VALUE1,KEY2=VALUE2

Substitua:

  • INSTANCE: o nome da instância
  • KEY1=VALUE1,KEY2=VALUE2: a lista separada por vírgulas de nomes e valores de variáveis

YAML

  1. Faça o download da configuração YAML da instância:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. Edite as variáveis de chave (nome) e valor.

  3. Atualize a instância usando o seguinte comando:

    gcloud beta run instances replace instance.yaml

Excluir variáveis de ambiente

gcloud

Para remover seletivamente as variáveis de ambiente de uma instância, use a --remove-env-vars sinalização:

gcloud beta run instances update INSTANCE --remove-env-vars KEY1,KEY2

Substitua:

  • INSTANCE: o nome da instância
  • KEY1,KEY2: a lista separada por vírgulas de nomes de variáveis

Também é possível apagar todas as variáveis de ambiente definidas anteriormente com a --clear-env-vars sinalização:

gcloud beta run instances update INSTANCE --clear-env-vars

Substitua INSTANCE pelo nome da instância.

Exemplo de código

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

É possível usar variáveis de ambiente para definir uma configuração de buildpacks. Para detalhes específicos da linguagem, consulte a documentação de buildpacks com relação ao seguinte: