É possível definir variáveis de ambiente arbitrárias para um serviço do Cloud Run. O Cloud Run injeta esses pares de chave-valor no contêiner e os torna acessíveis ao código. Também é possível usá-las para transmitir informações de configuração para buildpacks ao implantar uma função do código-fonte.
As variáveis de ambiente estão vinculadas a um único serviço e não são visíveis a outros serviços no projeto do Google Cloud. Cada variável é armazenada no serviço implantado e existe no mesmo ciclo de vida do serviço a que está vinculada.
Número máximo de variáveis de ambiente
É possível definir no máximo 1.000 variáveis de ambiente para um serviço do Cloud Run.
Ciclo de vida variável
Todas as variáveis de ambiente estão vinculadas a uma implantação de um serviço. Elas só podem ser definidas ou alteradas com uma implantação. Se uma implantação falhar por algum motivo, todas as mudanças feitas nas variáveis de ambiente não serão aplicadas. As mudanças na variável de ambiente precisam de uma implantação bem-sucedida.
Práticas recomendadas
A seção a seguir destaca algumas das práticas recomendadas para configurar variáveis de ambiente.
Gerenciar secrets
É possível usar variáveis de ambiente para a configuração do serviço, mas não recomendamos que elas sejam usadas para armazenar segredos, como credenciais de banco de dados ou chaves de API. Os valores sensíveis precisam ser armazenados fora do código-fonte e das variáveis de ambiente externas. Alguns ambientes de execução ou o uso de alguns frameworks podem fazer com que o conteúdo de variáveis de ambiente seja enviado para registros. Também não recomendamos armazenar credenciais confidenciais em arquivos YAML, scripts de implantação ou sistemas de controle de origem. As variáveis de ambiente são visíveis para qualquer pessoa com permissões de Leitor do projeto ou mais.
Para armazenar secrets, recomendamos o uso do Secret Manager. Para configurar serviços para acessar secrets armazenados no Secret Manager, consulte Configurar secrets.
Não há integração específica do Cloud Run com o Cloud KMS.
Variáveis de ambiente reservadas
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.
Variáveis de ambiente reservadas para funções
O Cloud Run define automaticamente as seguintes variáveis de ambiente de execução ao implantar funções:
Chave | Descrição |
---|---|
FUNCTION_TARGET |
Reservado: a função a ser executada. |
FUNCTION_SIGNATURE_TYPE |
Reservado: o tipo da função - http para funções HTTP e event para funções orientadas a eventos.
|
K_SERVICE |
Reservado: o nome do recurso da função. |
K_REVISION |
Reservado: o identificador da versão da função. |
PORT |
Reservado: a porta pela qual a função é invocada. |
Algumas outras variáveis de ambiente são definidas automaticamente, dependendo do ambiente de execução usado pela função. Eles são baseados no sistema operacional do ambiente de execução,
por exemplo, DEBIAN_FRONTEND
, SHLVL
ou PATH
, e no ambiente de execução da linguagem, por exemplo, NODE_ENV
, VIRTUAL_ENV
ou GOPATH
.
As variáveis de ambiente fornecidas pelo ambiente (exceto as definidas automaticamente) podem ser alteradas em futuras versões do ambiente de execução. Como prática recomendada, não dependa de ou modifique variáveis de ambiente que você não tenha definido explicitamente.
Modificar variáveis de ambiente que são fornecidas pelo ambiente pode levar a resultados imprevisíveis. As tentativas de modificar essas variáveis de ambiente podem ser bloqueadas ou, o que seria pior, levar a consequências não intencionais, como funções que não podem ser iniciadas. Como prática recomendada, considere prefixar qualquer variável de ambiente com uma chave exclusiva para evitar conflitos.
Além disso, não é possível usar as seguintes variáveis de ambiente:
Chave | Descrição |
---|---|
Vazia ('') | As chaves não podem ser uma string vazia. |
= |
As chaves não podem conter o caractere "=". |
X_GOOGLE_ |
As chaves não podem conter o prefixo X_GOOGLE_ . |
Limites de tamanho de variáveis para funções
O número total de bytes usados pelos nomes e valores das variável de ambiente para uma função individual é limitado a 32 KiB. Não há limites específicos sobre chaves ou valores individuais nessa capacidade geral.
Para variáveis de ambiente de build, é possível definir até 100 variáveis, com a
string de definição foo=bar
limitada a 64 KiB.
Usar variáveis de ambiente portáteis em funções
É possível que as variáveis de ambiente que funcionam com suas funções não funcionem com um ambiente de execução diferente, como em uma linguagem diferente ou com determinadas ferramentas ou bibliotecas. Também é possível que elas não sejam aceitas por uma plataforma diferente.
Evite esses problemas seguindo o padrão POSIX para variáveis de ambiente.
Se você usar o console do Google Cloud para editar variáveis,
ele avisará sempre que você definir uma variável que possa
ter problemas de portabilidade, mas isso não impedirá a implantação. Recomendamos que
as chaves de variável de ambiente consistam apenas em letras maiúsculas,
dígitos e <underscore>
(_
), como definido no
Conjunto de caracteres portáteis, e que elas não iniciem com um dígito.