Nesta página

Variaveis de Ambiente

Variaveis de ambiente permitem configurar sua aplicacao sem alterar o codigo. Use-as para armazenar URLs de banco de dados, chaves de API, configuracoes de ambiente e outros valores que podem variar entre ambientes.

Gerenciando variaveis de ambiente

Adicionando variaveis

  1. Acesse a pagina do servico no dashboard
  2. Va ate a aba Variaveis de Ambiente
  3. Clique em Adicionar Variavel
  4. Informe o nome (chave) e o valor
  5. Clique em Salvar

Voce pode adicionar quantas variaveis precisar. Cada variavel e injetada como uma variavel de ambiente no container da sua aplicacao.

Editando variaveis

Para editar uma variavel existente, clique no icone de edicao ao lado dela, altere o valor e salve. O valor anterior nao sera mais acessivel apos a edicao.

Removendo variaveis

Para remover uma variavel, clique no icone de exclusao e confirme a acao. A variavel sera removida do container no proximo deploy.

Mascaramento de segredos

Valores sensiveis sao automaticamente mascarados no dashboard apos serem salvos. Isso significa que, apos definir uma variavel, o valor completo nao sera mais exibido na interface. Voce pode substituir o valor a qualquer momento, mas nao pode visualizar o valor atual.

Isso protege segredos como chaves de API e senhas de banco de dados contra exposicao acidental.

Padroes comuns

Aqui estao algumas variaveis de ambiente frequentemente usadas:

VariavelExemploUso
DATABASE_URLpostgresql://user:pass@host:5432/dbConexao com banco de dados
API_KEYsk-abc123def456Chave de API de servico externo
NODE_ENVproductionAmbiente de execucao (Node.js)
PORT3000Porta da aplicacao
SECRET_KEYminha-chave-secretaChave para criptografia/tokens

Variaveis injetadas pela plataforma

O Guara Cloud injeta automaticamente um conjunto de variaveis de ambiente em todos os servicos. Voce nao precisa cria-las manualmente.

VariavelExemploDescricao
PORT3000A porta que seu servico deve escutar
GUARA_SERVICE_NAMEmy-api-a3f2c1O slug do servico (identificador interno)
GUARA_PROJECT_NAMEmy-projectO slug do projeto
GUARA_ENVIRONMENTproductionO ambiente de execucao

Variaveis de descoberta de servicos

Quando seu projeto tem multiplos servicos, o Guara Cloud injeta automaticamente variaveis de ambiente para que cada servico possa descobrir e se comunicar com seus vizinhos. Essas variaveis usam o nome do servico como prefixo, tornando-as intuitivas e previsiveis.

Para cada servico vizinho, tres variaveis sao injetadas:

VariavelFormatoDescricao
{NOME_SERVICO}_HOST{slug}.{namespace}.svc.cluster.localHostname interno do servico vizinho
{NOME_SERVICO}_PORT3000Porta do servico vizinho
{NOME_SERVICO}_URLhttp://{slug}.{namespace}.svc.cluster.local:3000URL completa do servico vizinho

O prefixo {NOME_SERVICO} e derivado do nome do servico vizinho: convertido para maiusculas, com espacos e hifens substituidos por underscores.

Exemplo

Suponha que seu projeto tenha tres servicos:

  • My API (porta 8080)
  • My Worker (porta 3000)
  • Redis Cache (porta 6379)

O servico My API recebera automaticamente:

# Variaveis de descoberta para "My Worker"
MY_WORKER_HOST=my-worker-b4d3e2.proj-myapp.svc.cluster.local
MY_WORKER_PORT=3000
MY_WORKER_URL=http://my-worker-b4d3e2.proj-myapp.svc.cluster.local:3000

# Variaveis de descoberta para "Redis Cache"
REDIS_CACHE_HOST=redis-cache-c5e6f7.proj-myapp.svc.cluster.local
REDIS_CACHE_PORT=6379
REDIS_CACHE_URL=http://redis-cache-c5e6f7.proj-myapp.svc.cluster.local:6379

Voce pode usar essas variaveis diretamente no codigo da sua aplicacao:

// Exemplo em Node.js
const workerUrl = process.env.MY_WORKER_URL;
const response = await fetch(`${workerUrl}/tasks`);
# Exemplo em Python
import os
worker_url = os.environ["MY_WORKER_URL"]

Boas praticas

  • Nunca coloque segredos no codigo fonte. Use variaveis de ambiente para armazenar valores sensiveis.
  • Use nomes descritivos. Prefira DATABASE_URL a DB para facilitar a manutencao.
  • Separe por ambiente. Use valores diferentes para desenvolvimento e producao.
  • Revise periodicamente. Remova variaveis que nao sao mais utilizadas.