Python: Umgang mit Geheimnissen (Umgebungsvariablen)
Diese Dokumentation ist Teil des Erweiterte Anwendungen-Leitfadens. Den vollständigen Leitfaden finden Sie hier: Weiterführende Schritte mit Ihren Python-Bereitstellungen.
👋 Willkommen in der Stackhero-Dokumentation!
Stackhero bietet eine einsatzbereite Python Cloud-Lösung, die Ihren Deployment-Prozess vereinfacht:
- Deployen Sie Ihre Anwendung in die Produktion in Sekunden mit einem einfachen
git push.- Verwenden Sie Ihre eigene Domain, mit automatischer HTTPS-Zertifikatskonfiguration – sichere Verbindungen werden für Sie eingerichtet.
- Profitieren Sie von automatischen Backups, One-Click-Updates und planbaren Kosten, damit Sie sich auf Ihren Code konzentrieren können, nicht auf das Infrastrukturmanagement.
- Nutzen Sie starke Performance und Sicherheit auf einer privaten, dedizierten Infrastruktur. Ihre Umgebung ist isoliert und geschützt.
Sparen Sie Zeit und vereinfachen Sie Ihren Workflow: Ihr Code läuft mit Stackheros Python Cloud Hosting in nur 5 Minuten.
Irgendwann müssen Sie Geheimnisse wie Tokens und Passwörter für Datenbanken oder Drittanbieterdienste speichern. Es ist wichtig, diese sicher zu speichern. Vermeiden Sie es, sie direkt in Ihrem Repository oder Code einzubetten, da dies ein erhebliches Sicherheitsrisiko darstellt.
Die Verwendung von Umgebungsvariablen bietet zwei wesentliche Vorteile:
- Ihre Geheimnisse werden niemals in Ihrem Git-Repository gespeichert, was das Risiko eines unbefugten Zugriffs verringert.
- Sie können unterschiedliche Anmeldeinformationen für verschiedene Umgebungen verwenden, z. B. eine Produktionsdatenbank in der Produktion und eine Entwicklungsdatenbank während der Entwicklung.
Einrichten von Umgebungsvariablen für die Entwicklung
In einer Entwicklungsumgebung erstellen Sie eine .env Datei im Stammverzeichnis Ihres Projekts. Diese Datei sollte von Git ausgeschlossen werden, um sicherzustellen, dass sie niemals festgeschrieben wird.
Um die .env Datei automatisch zu lesen, können Sie das python-dotenv Modul verwenden:
pip install python-dotenv
pip freeze > requirements.txt
Erstellen Sie dann eine .env Datei im Stammverzeichnis Ihres Projekts und fügen Sie Ihre Variablen hinzu:
ENV="development"
DATABASE_PASSWORD="secretPassword"
THIRD_API_PRIVATE_KEY="secretKey"
# ...
Stellen Sie schließlich sicher, dass die .env Datei von Git ausgeschlossen wird, indem Sie sie zu Ihrer .gitignore hinzufügen:
echo ".env" >> .gitignore
Einrichten von Umgebungsvariablen für Staging und Produktion
Die .env Datei ist nicht sicher genug für Staging- und Produktionsumgebungen. Stattdessen ermöglicht Stackhero Ihnen, Ihre Umgebungsvariablen direkt in der Konfiguration Ihres Python-Dienstes sicher zu speichern.
Sie können diese Variablen im Stackhero-Dashboard festlegen, indem Sie Ihren Python-Dienst auswählen und dann auf die Schaltfläche "Konfigurieren" klicken.
Python-Umgebungsvariablen auf Stackhero
Zugriff auf Umgebungsvariablen in Python
Der Zugriff auf Umgebungsvariablen in Python ist einfach. Verwenden Sie einfach os.environ.get() wie unten gezeigt:
import os
print(os.environ.get('ENV'))
Zum Beispiel kann die Verbindung zu einem Redis-Server unter Verwendung einer Umgebungsvariablen so erfolgen:
import os
import redis
r = redis.from_url(os.environ.get("REDIS_URL"))
In einer Entwicklungsumgebung setzen Sie REDIS_URL in Ihrer .env Datei wie folgt:
REDIS_URL="redis://localhost:6379"
Für Produktion und Staging definieren Sie REDIS_URL auf dem Stackhero-Dashboard unter der Python-Dienstkonfiguration:
REDIS_URL="rediss://default:<yourPassword>@<XXXXXX>.stackhero-network.com:6380"