Configure variáveis de ambiente (1.ª geração)
Pode implementar pares de chave/valor arbitrários juntamente com uma função do Cloud Run. Estes pares são disponibilizados à sua função como variáveis de ambiente literais, acessíveis pelo seu código no tempo de execução, ou como informações de configuração para os buildpacks do Google Cloud.
As variáveis de ambiente estão associadas a uma única função e não estão visíveis para outras funções no seu projeto. Google Cloud Cada variável é armazenada no back-end das funções do Cloud Run e existe no mesmo ciclo de vida que a função à qual estão associadas.
Pode adicionar ou remover variáveis de ambiente de tempo de execução através da CLI gcloud ou da Google Cloud consola.
Definir variáveis de ambiente de tempo de execução
Use estes métodos para estabelecer novas variáveis ou substituir completamente as variáveis existentes. Para fazer alterações aditivas, use o processo de atualização descrito na secção seguinte.
gcloud
Para definir uma variável de ambiente de tempo de execução através da Google Cloud CLI,
use a flag --set-env-vars
no momento da implementação:
gcloud functions deploy --no-gen2 FUNCTION_NAME --set-env-vars FOO=bar FLAGS ...
Também pode definir várias variáveis de ambiente de tempo de execução através de uma lista separada por vírgulas:
gcloud functions deploy --no-gen2 FUNCTION_NAME --set-env-vars FOO=bar,BAZ=boo FLAGS...
Se quiser armazenar a sua configuração num ficheiro (por exemplo, sob controlo de origem), pode usar um ficheiro YAML juntamente com a flag --env-vars-file
:
gcloud functions deploy --no-gen2 FUNCTION_NAME --env-vars-file .env.yaml FLAGS...
Onde se encontra o conteúdo do ficheiro .env.yaml
:
FOO: bar
BAZ: boo
Nos exemplos acima, FLAGS...
refere-se a outras opções que transmite durante a implementação da sua função. Para uma referência completa do comando deploy
, consulte gcloud functions deploy
.
Google Cloud IU da consola
Pode definir variáveis de ambiente de tempo de execução durante a criação da função na Google Cloud consola:
Abra a página Vista geral das funções na Google Cloud consola:
Clique em Criar função.
Preencha os campos obrigatórios para a sua função.
Abra a secção Definições de tempo de execução, compilação e ligações.
Selecione o separador Tempo de execução.
Na secção Variáveis de ambiente de tempo de execução, clique em Adicionar variável e adicione o nome e o valor.
Para ver instruções sobre como adicionar variáveis de ambiente a uma função existente, consulte o artigo Atualizar variáveis de ambiente de tempo de execução.
Atualizar variáveis de ambiente de tempo de execução
Também pode atualizar as variáveis de ambiente de tempo de execução para funções existentes. Esta é uma abordagem não destrutiva que altera ou adiciona variáveis do ambiente de tempo de execução, mas não elimina.
gcloud
Para atualizar uma variável através da Google Cloud CLI, use a flag --update-env-vars
no momento da implementação:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar
Também pode atualizar várias variáveis de ambiente de tempo de execução através de uma lista separada por vírgulas:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-env-vars FOO=bar,BAZ=boo
Google Cloud IU da consola
Para atualizar as variáveis de ambiente de tempo de execução através da Google Cloud consola:
Abra a página Vista geral das funções na Google Cloud consola:
Clique numa função existente para aceder à respetiva página de detalhes.
Clique em Edit.
Abra a secção Definições de tempo de execução, compilação e ligações.
Selecione o separador Tempo de execução.
Faça as edições na secção Variáveis de ambiente de tempo de execução.
Eliminar variáveis de ambiente de tempo de execução
gcloud
Se quiser remover seletivamente variáveis de ambiente de tempo de execução, pode usar a flag --remove-env-vars
no momento da implementação:
gcloud functions deploy FUNCTION_NAME --no-gen2 --remove-env-vars FOO,BAZ
Em alternativa, pode limpar todas as variáveis do ambiente de tempo de execução definidas anteriormente
com a flag --clear-env-vars
:
gcloud functions deploy FUNCTION_NAME --no-gen2 --clear-env-vars
Google Cloud IU da consola
Para eliminar variáveis de ambiente de tempo de execução através da Google Cloud consola:
Abra a página Vista geral das funções na Google Cloud consola:
Clique numa função existente para aceder à respetiva página de detalhes.
Clique em Edit.
Abra a secção Definições de tempo de execução, compilação e ligações.
Selecione o separador Tempo de execução.
Na secção Variáveis do ambiente de tempo de execução, clique no ícone de lixo junto ao par chave/valor para o eliminar.
Variáveis de ambiente do tempo de execução definidas automaticamente
Esta secção apresenta as variáveis de ambiente de tempo de execução que são definidas automaticamente.
Chave | Descrição |
---|---|
FUNCTION_TARGET |
Reservado: a função a executar. |
FUNCTION_SIGNATURE_TYPE |
Reservado: o tipo da função: http para funções HTTP e event para funções orientadas por eventos.
|
K_SERVICE |
Reservado: o nome do recurso de função. |
K_REVISION |
Reservado: o identificador da versão da função. |
PORT |
Reservado: a porta através da qual a função é invocada. |
gcloud functions deploy envVarMemory \
--no-gen2 \
--runtime nodejs10 \
--set-env-vars FUNCTION_MEMORY_MB=2Gi \
--memory 2Gi \
--trigger-http
Definir e obter variáveis de ambiente de tempo de execução: um exemplo
Defina a variável de ambiente de tempo de execução:
Node.js
gcloud functions deploy envVar \ --runtime nodejs20 \ --set-env-vars FOO=bar \ --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão suportada do Node.js para executar
a sua função.
Python
gcloud functions deploy env_vars \ --runtime python312 \ --set-env-vars FOO=bar \ --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Python suportada para executar
a sua função.
Go
gcloud functions deploy EnvVar \ --runtime go121 \ --set-env-vars FOO=bar \ --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Go suportada para executar
a sua função.
Java
gcloud functions deploy java-envVar-function \ --entry-point functions.EnvVars \ --runtime java17 \ --memory 512MB \ --set-env-vars FOO=bar \ --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão Java suportada para executar
a sua função.
C#
gcloud functions deploy csharp-envVar-function \ --entry-point EnvironmentVariables.Function \ --runtime dotnet6 \ --set-env-vars FOO=bar \ --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão .NET suportada para executar
a sua função.
Ruby
gcloud functions deploy env_vars --runtime ruby33 \ --set-env-vars FOO=bar \ --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do Ruby suportada para executar
a sua função.
PHP
gcloud functions deploy envVar --runtime php82 \ --set-env-vars FOO=bar \ --trigger-http
Use a flag --runtime
para especificar o ID de tempo de execução de uma
versão do PHP suportada para executar
a sua função.
Em tempo de execução, aceda às variáveis de forma programática:
Node.js
No Node.js, use a propriedade process.env
para aceder às variáveis do ambiente de tempo de execução:
Python
Em Python, use os.environ
para aceder às variáveis de ambiente de tempo de execução:
Go
Em Go, use os.Getenv()
para aceder às variáveis de ambiente do tempo de execução:
Java
Em Java, use System.getenv
para aceder às variáveis do ambiente de tempo de execução:
C#
Em tempo de execução, as variáveis de ambiente são acessíveis através deEnvironment.GetEnvironmentVariable
em C#:
using Google.Cloud.Functions.Framework; using Microsoft.AspNetCore.Http; using System; using System.Threading.Tasks; namespace EnvironmentVariables; public class Function : IHttpFunction { public async Task HandleAsync(HttpContext context) { string foo = Environment.GetEnvironmentVariable("FOO") ?? "Specified environment variable is not set."; await context.Response.WriteAsync(foo, context.RequestAborted); } }
Ruby
Em tempo de execução, as variáveis de ambiente são acessíveis através deENV
no Ruby:
PHP
Em tempo de execução, as variáveis de ambiente são acessíveis através da funçãogetenv
do PHP:
use Psr\Http\Message\ServerRequestInterface; function envVar(ServerRequestInterface $request): string { return getenv('FOO') . PHP_EOL; }
Usar variáveis de ambiente de compilação
Também pode definir variáveis de ambiente de compilação para tempos de execução que suportam buildpacks.
As variáveis de ambiente de compilação são pares de chave/valor implementados juntamente com uma função que lhe permitem transmitir informações de configuração para os buildpacks. Por exemplo, pode querer personalizar as opções do compilador. Pode adicionar ou remover estas variáveis de ambiente de compilação através da CLI Google Cloud ou da IU da consola Google Cloud .
Definir variáveis do ambiente de compilação
Use estes métodos para estabelecer novas variáveis ou substituir completamente as variáveis existentes. Para fazer alterações aditivas, use o processo de atualização (a flag --update-build-env-vars
em gcloud
) descrito na secção seguinte.
gcloud
Para definir uma variável através da Google Cloud CLI, use a flag --set-build-env-vars
no momento da implementação:
gcloud beta functions deploy FUNCTION_NAME --no-gen2 --set-build-env-vars FOO=bar FLAGS...
Também pode definir várias variáveis do ambiente de compilação através de uma lista separada por vírgulas:
gcloud functions deploy FUNCTION_NAME --no-gen2 --set-build-env-vars FOO=bar,BAZ=boo FLAGS...
Se quiser armazenar a sua configuração num ficheiro (por exemplo, sob controlo de origem),
pode usar um ficheiro YAML juntamente com a flag --build-env-vars-file
:
gcloud functions deploy FUNCTION_NAME --no-gen2 --build-env-vars-file FILE_NAME.yaml FLAGS...
Onde se encontra o conteúdo do ficheiro *.yaml
:
FOO: bar
BAZ: boo
Nos exemplos acima, FLAGS...
refere-se a outras opções que transmite durante a implementação da sua função. Para uma referência completa
do comando deploy
, consulte gcloud beta functions deploy
.
Google Cloud IU da consola
Também pode definir variáveis de ambiente de compilação durante a criação da função na Google Cloud consola:
Abra a página Vista geral das funções na Google Cloud consola:
Clique em Criar função.
Preencha os campos obrigatórios para a sua função.
Abra a secção Definições de tempo de execução, compilação e ligações.
Selecione o separador Criar.
Na secção Crie variáveis de ambiente, clique em Adicionar variável e adicione o nome e o valor.
Atualizar variáveis de ambiente de compilação
Também pode atualizar as variáveis do ambiente de compilação para funções existentes. Esta é uma abordagem não destrutiva que altera ou adiciona variáveis do ambiente de compilação, mas não elimina.
gcloud
Para definir uma variável através da Google Cloud CLI, use a flag --update-build-env-vars
no momento da implementação:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-build-env-vars FOO=bar
Também pode atualizar várias variáveis do ambiente de compilação através de uma lista separada por vírgulas:
gcloud functions deploy FUNCTION_NAME --no-gen2 --update-build-env-vars FOO=bar,BAZ=boo
Google Cloud IU da consola
Para atualizar as variáveis do ambiente de compilação através da Google Cloud consola:
Abra a página Vista geral das funções na Google Cloud consola:
Clique numa função existente para aceder à respetiva página de detalhes.
Clique em Edit.
Abra a secção Definições de tempo de execução, compilação e ligações.
Selecione o separador Criar.
Faça as edições na secção Criar variáveis de ambiente.
Eliminar variáveis de ambiente de compilação
gcloud
Se quiser remover seletivamente variáveis do ambiente de compilação, pode usar a flag --remove-build-env-vars
no momento da implementação:
gcloud functions deploy FUNCTION_NAME --no-gen2 --remove-build-env-vars FOO,BAZ
Em alternativa, pode limpar todas as variáveis de ambiente de compilação definidas anteriormente com a flag --clear-build-env-vars
:
gcloud functions deploy FUNCTION_NAME --no-gen2 --clear-build-env-vars
Google Cloud IU da consola
Para eliminar variáveis do ambiente de compilação através da Google Cloud consola:
Abra a página Vista geral das funções na Google Cloud consola:
Clique numa função existente para aceder à respetiva página de detalhes.
Clique em Edit.
Abra a secção Definições de tempo de execução, compilação e ligações.
Selecione o separador Criar.
Na secção Criar variáveis de ambiente, clique no ícone do lixo junto ao par chave/valor para o eliminar.
Ciclo de vida das variáveis
Todas as variáveis de ambiente estão associadas a uma implementação de uma função do Cloud Run e só podem ser definidas ou alteradas com uma implementação. Se uma implementação falhar por qualquer motivo, não são aplicadas alterações às variáveis de ambiente. As alterações às variáveis de ambiente requerem uma implementação bem-sucedida.
Práticas recomendadas e variáveis de ambiente reservadas
Algumas variáveis de ambiente adicionais são definidas automaticamente consoante o tempo de execução usado pela sua função. Estes baseiam-se no sistema operativo do tempo de execução (por exemplo, DEBIAN_FRONTEND
, SHLVL
ou PATH
) e no tempo de execução da linguagem (por exemplo, NODE_ENV
, VIRTUAL_ENV
ou GOPATH
).
As variáveis de ambiente fornecidas pelo ambiente (exceto as indicadas em Variáveis de ambiente definidas automaticamente) podem mudar em versões de tempo de execução futuras. Como prática recomendada, sugerimos que não dependa nem modifique variáveis de ambiente que não tenha definido explicitamente.
A modificação de variáveis de ambiente fornecidas pelo ambiente pode levar a resultados imprevisíveis. As tentativas de modificar essas variáveis de ambiente podem ser bloqueadas ou, pior, levar a consequências não intencionais, como funções que não podem ser iniciadas. Como prática recomendada, considere prefixar quaisquer variáveis de ambiente com uma chave única para evitar conflitos.
Por último, não pode usar as seguintes variáveis de ambiente:
Chave | Descrição |
---|---|
Vazio ('') | As chaves não podem ser uma string vazia. |
= |
As chaves não podem conter o caráter "=". |
X_GOOGLE_ |
As chaves não podem conter o prefixo X_GOOGLE_ . |
Limites de tamanho
O número total de bytes usados pelos nomes e valores das variáveis do ambiente de tempo de execução para uma função individual está limitado a 32 KiB. Não existem limites específicos para chaves ou valores individuais dentro desta capacidade geral.
Para variáveis de ambiente de compilação, podem ser definidas até 100 variáveis, com a string de definição foo=bar
limitada a 64 KiB.
Gerir segredos
As variáveis de ambiente podem ser usadas para a configuração de funções, mas não são recomendadas como forma de armazenar segredos, como credenciais de bases de dados ou chaves de API. Estes valores mais confidenciais devem ser armazenados fora do código fonte e das variáveis de ambiente. Alguns ambientes de execução ou a utilização de alguns frameworks podem resultar no envio do conteúdo das variáveis de ambiente para registos. Além disso, não é recomendado armazenar credenciais confidenciais em ficheiros YAML, scripts de implementação ou sob controlo de origem.
Para armazenar segredos, recomendamos que use o Secret Manager. Para configurar funções do Cloud Run para aceder a segredos armazenados no Secret Manager, consulte o artigo Configure segredos. Tenha em atenção que não existe uma integração específica das funções do Cloud Run com o Cloud KMS.
Portabilidade
É possível que as variáveis de ambiente que funcionam atualmente com a sua função do Cloud Run não funcionem com um ambiente de tempo de execução diferente, como num idioma diferente ou com determinadas ferramentas ou bibliotecas. Também é possível que não sejam aceites por uma plataforma diferente.
Pode evitar estes problemas seguindo a norma POSIX para variáveis de ambiente.
Se usar a Google Cloud consola para editar variáveis,
Google Cloud a consola avisa sempre que define uma variável que possa ter problemas de portabilidade (mas não impede a implementação). Como regra geral, recomendamos que as chaves das variáveis de ambiente sejam compostas apenas por letras maiúsculas, dígitos e <underscore>
(_
), conforme definido no conjunto de carateres portátil, e que não comecem por um dígito.