Python: Gestão de segredos (variáveis de ambiente)
Esta documentação faz parte do guia Usos avançados. Consulte o guia completo aqui: Avançar com as suas implementações Python.
👋 Bem-vindo à documentação do Stackhero!
Stackhero oferece uma solução cloud Python pronta a usar que proporciona uma série de benefícios, incluindo:
- Implemente a sua aplicação em segundos com um simples
git push.- Utilize o seu próprio nome de domínio e beneficie da configuração automática de certificados HTTPS para uma segurança reforçada.
- Desfrute de tranquilidade com backups automáticos, atualizações com um clique, e preços simples, transparentes e previsíveis.
- Obtenha performance ótima e segurança robusta graças a uma VM privada e dedicada.
Poupe tempo e simplifique a sua vida: só leva 5 minutos para experimentar a solução de hospedagem cloud Python do Stackhero!
Em algum momento, precisará armazenar segredos como tokens e senhas para bases de dados ou serviços de terceiros. É importante armazená-los de forma segura. Evite incorporá-los diretamente no seu repositório ou código, pois isso cria um risco significativo de segurança.
Usar variáveis de ambiente oferece dois benefícios principais:
- Os seus segredos nunca são armazenados no seu repositório Git, reduzindo o risco de acesso não autorizado.
- Pode usar credenciais diferentes para vários ambientes, como usar uma base de dados de produção em produção e uma base de dados de desenvolvimento durante o desenvolvimento.
Configurar variáveis de ambiente para desenvolvimento
Num ambiente de desenvolvimento, crie um ficheiro .env na raiz do seu projeto. Este ficheiro deve ser excluído do Git para garantir que nunca seja confirmado.
Para ler automaticamente o ficheiro .env, pode usar o módulo python-dotenv:
pip install python-dotenv
pip freeze > requirements.txt
Depois, crie um ficheiro .env na raiz do seu projeto e adicione as suas variáveis:
ENV="development"
DATABASE_PASSWORD="secretPassword"
THIRD_API_PRIVATE_KEY="secretKey"
# ...
Finalmente, certifique-se de que o ficheiro .env está excluído do Git adicionando-o ao seu .gitignore:
echo ".env" >> .gitignore
Configurar variáveis de ambiente para staging e produção
O ficheiro .env não é suficientemente seguro para ambientes de staging e produção. Em vez disso, o Stackhero permite que armazene com segurança as suas variáveis de ambiente diretamente na configuração do seu serviço Python.
Pode definir estas variáveis no painel de controlo Stackhero selecionando o seu serviço Python e clicando no botão "Configurar".
Variáveis de ambiente Python no Stackhero
Aceder a variáveis de ambiente em Python
Aceder a variáveis de ambiente em Python é simples. Basta usar os.environ.get() como mostrado abaixo:
import os
print(os.environ.get('ENV'))
Por exemplo, conectar-se a um servidor Redis usando uma variável de ambiente pode ser feito assim:
import os
import redis
r = redis.from_url(os.environ.get("REDIS_URL"))
Num ambiente de desenvolvimento, defina o REDIS_URL no seu ficheiro .env da seguinte forma:
REDIS_URL="redis://localhost:6379"
Para produção e staging, defina o REDIS_URL no painel de controlo Stackhero sob a configuração do serviço Python:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:6380"