Wie setzt man Umgebungsvariablen
Lesezeit: 4 Minuten
Es gibt Dinge, die wir wirklich nicht in unserem Code preisgeben sollten. Meist sind das Konfigurationswerte, die von der Umgebung abhängen, z. B. Debugging-Flags oder Zugriffstokens für APIs wie Twilio. Umgebungsvariablen sind hier eine gute Lösung und können in den meisten Sprachen verwendet werden.
Umgebungsvariablen?
Wie der Name vermuten lässt, sind Umgebungsvariablen die Variablen in Ihrem System, die Ihre Umgebung beschreiben. Die bekannteste Umgebungsvariable ist wahrscheinlich PATH
, die die Pfade zu allen Ordnern enthält, die ausführbare Dateien enthalten könnten. Mit PATH
müssen Sie statt des kompletten Pfads nur den Namen der ausführbaren Datei in Ihrem Terminal eingeben. Daraufhin prüft die Shell das lokale Verzeichnis und die in der PATH
-Variable für die ausführbare Datei angegebenen Verzeichnisse.
Neben den integrierten Variablen haben wir auch die Möglichkeit, unsere eigenen Umgebungsvariablen zu definieren. Gebunden an unsere Umgebung eignen sie sich bestens für beispielsweise API-Zugriffstokens. Sie können eine Variable auf einen Wert auf Ihrem Entwicklungscomputer und einen anderen für Ihre Produktionsentwicklung festlegen – ganz ohne if
-Anweisungen oder spezielle Konfigurationsdateien.
Die Hilfsbibliotheken von Twilio suchen beispielsweise nach den TWILIO_ACCOUNT_SID
und TWILIO_AUTH_TOKEN
-Umgebungsvariablen, wenn Sie einen Client ohne die beiden Werte instanziieren. Auf diese Weise verhindern Sie, dass sensible Anmeldeinformationen freigegeben werden, zum Beispiel auf GitHub.
Windows-Umgebungsvariablen
Die Umgebungsvariablen sind in Windows aufgrund mehrerer Dialogebenen recht versteckt. Wie wir es von Windows gewohnt sind, werden die Umgebungsvariablen mithilfe einer grafischen Benutzeroberfläche festgelegt. Zum Öffnen der entsprechenden Oberfläche müssen Sie zunächst den Windows-Befehl „Ausführen“ öffnen. Drücken Sie dazu gleichzeitig die Tasten Windows
und R
auf Ihrer Tastatur. Geben Sie sysdm.cpl
in das Eingabefeld ein und drücken Sie Enter
oder OK
.
Klicken Sie im darauf angezeigten Fenster auf die Registerkarte Erweitert und danach auf die Schaltfläche Umgebungsvariablen unten rechts im Fenster.
Das Fenster ist in zwei verschiedene Bereiche unterteilt. In ersten Bereich befinden sich die nutzerspezifischen Umgebungsvariablen. Diese gelten nur für einen spezifischen Nutzer, nicht jedoch für andere. Der zweite Bereich enthält die systemweiten Variablen, die allen Nutzern zur Verfügung stehen.
Klicken Sie auf die Schaltfläche Neu unter dem nutzerspezifischen Bereich, um eine nutzerspezifische Variable zu erstellen. In der Befehlszeile können Sie nun den Namen Ihrer Variable sowie den Wert angeben. Erstellen Sie eine neue Variable mit dem Namen TWILIO_ACCOUNT_SID
und kopieren Sie Ihre Twilio-Konto-SID aus der Konsole. Drücken Sie in der Befehlszeile auf OK
, um die Variable zu erstellen. Drücken Sie anschließend im Fenster „Umgebungsvariablen“ auf OK
. Nun ist alles eingerichtet.
Als Funktionstest können Sie die Eingabeaufforderung öffnen, indem Sie Windows
R
drücken und cmd.exe
eingeben. Falls die Eingabeaufforderung bereits geöffnet ist, schließen und öffen Sie diese, damit die Änderungen übernommen werden. Führen Sie in der Eingabeaufforderung folgenden Befehl aus:
Daraufhin sehen Sie den von Ihnen in der Umgebungsvariable gespeicherten Wert.
macOS und Linux-Distributionen
Finden Sie zunächst heraus, welche Shell Sie ausführen, bevor Sie Umgebungsvariablen auf macOS oder einem beliebigen UNIX-basierten Betriebssystem festlegen. Führen Sie dazu in Ihrem Terminal folgenden Befehl aus:
Am Ende der Ausgabe sehen Sie, welche Shell ausgeführt wird. Typischerweise wird die bash
-Shell ausgeführt, die wir auch in unserem Beispiel verwenden. Die Schritte ähneln sich jedoch für andere Shells wie zsh
oder fish
.
Wir müssen den Exportbefehl im folgenden Format nutzen, um eine Umgebungsvariable festzulegen:
Da sich das nur auf unsere aktuelle Sitzung auswirkt, müssen wir diesen Befehl zu einer Datei hinzufügen, die für alle Sitzungen ausgeführt wird. Öffnen Sie dazu die .bashrc
-Datei in Ihrem Stammverzeichnis mit Ihrem bevorzugten Code-Editor. Fügen Sie die folgende Zeile an beliebiger Stelle Ihrer .bashrc
-Datei hinzu:
Ersetzen Sie youraccountsid
durch Ihre Konto-SID aus Ihrer Twilio-Konsole. Speichern Sie die Datei und öffnen Sie eine neue Terminalinstanz, um mit folgendem Befehl zu testen:
Sie müssten nun den von Ihnen gespeicherten Wert sehen.
.env
Manchmal müssen Sie nur eine Umgebungsvariable für ein einziges Projekt festlegen. In diesem Fall sind .env
-Dateien eine gute Lösung. Dabei handelt es sich um eine Datei in Ihrem Projekt, in der Sie die Umgebungsvariablen festlegen. Anschließend nutzen Sie eine Bibliothek für Ihre entsprechende Programmiersprache, um die Datei zu laden, die dynamisch die Variablen definiert.
Es stehen für die meisten Programmiersprachen Bibliotheken zur Verfügung, um diese Dateien zu laden. Hier einige Beispiele:
Erstellen Sie eine .env
-Datei in Ihrem Projektordner (normalerweise im Stammverzeichnis) und fügen Sie die Schlüsselwertpaare hinzu. Das sieht folgendermaßen aus:
Nun müssen Sie nur noch die entsprechende Bibliothek nutzen und können dann die Umgebungsvariable verwenden. In Node.js sieht der entsprechende Code so aus:
Da Sie wahrscheinlich die Umgebungsvariablen nicht in einem Repository festschreiben möchten, müssen Sie die .env
-Datei zu .gitignore
hinzufügen, um sie nicht versehentlich zu senden.
Cloud-Anbieter
Das Festlegen von Umgebungsvariablen auf Ihrem lokalen Entwicklungscomputer oder einer VM ist aber nur ein Teil der Arbeit. Was passiert, wenn wir unsere Anwendung in einer Cloud-Umgebung wie Heroku, Azure oder AWS hosten oder in einen Docker-Container packen? Kein Problem, denn zum Glück unterstützen alle diese Anbieter Möglichkeiten zum Definieren von Umgebungsvariablen. Anweisungen finden Sie in den jeweiligen Dokumentationen:
Wenn Sie Ihren Cloud-Host in dieser Liste nicht finden können, bedeutet dies nicht, dass es keine Möglichkeit gibt, Umgebungsvariablen zu konfigurieren. Überprüfen Sie die Dokumentation, um weitere Informationen zu erhalten.
Zusammenfassung
Das war es schon! Jetzt können Sie Umgebungsvariablen festlegen und somit alle umgebungsbasierten Konfigurationswerte aus Ihrem Code lösen, damit er flexibler und sicherer wird.
Achten Sie jedoch darauf, dass diese Werte weiterhin in Nur-Text gespeichert werden. Möchten Siein besonderem Maße sensible Werte speichern, sollten Sie sich nach einer geheimen Speicherlösung wie Vault umsehen.
Wenn Sie Fragen haben oder mir Ihre aktuelle Entwicklung zeigen möchten, freue ich mich über Ihre E-Mail an: dkundel@twilio.com. Alternativ können Sie mich über meinen Twitter-Account@dkundel erreichen. Ich kann kaum abwarten, zu sehen, was Sie entwickeln!
Verwandte Posts
Ähnliche Ressourcen
Twilio Docs
Von APIs über SDKs bis hin zu Beispiel-Apps
API-Referenzdokumentation, SDKs, Hilfsbibliotheken, Schnellstarts und Tutorials für Ihre Sprache und Plattform.
Ressourcen-Center
Die neuesten E-Books, Branchenberichte und Webinare
Lernen Sie von Customer-Engagement-Experten, um Ihre eigene Kommunikation zu verbessern.
Ahoy
Twilios Entwickler-Community-Hub
Best Practices, Codebeispiele und Inspiration zum Aufbau von Kommunikations- und digitalen Interaktionserlebnissen.