Zum Hauptinhalt springen
Version: Weekly Build

Umgebungsvariablen verwalten

Das Hardcodieren sensibler Daten – wie API-Schlüssel, Datenbankpasswörter oder Tokens – stellt ein Sicherheitsrisiko dar. Um dies zu vermeiden, entkoppeln Umgebungsvariablen die Konfiguration von der Codebasis. Codesphere verwaltet diese Variablen über verschlüsselten Speicher und injiziert sie zur Laufzeit in die Anwendung.

Zugriff auf die Variablen​

Die Secrets können im Tab Environment Variables des Landscape verwaltet werden.

  1. Öffne Environment Variables in der Seitenleiste.

Ansicht zur Verwaltung von Umgebungsvariablen zur Konfiguration von Laufzeitvariablen im Landscape-Editor.

Eine neue Variable hinzufügen​

So fügst du eine einzelne Variable hinzu:

  1. Klicke auf die Schaltfläche + Add New Variable.
  2. Key: Gib den Namen deiner Variable ein
  3. Value: Gib den geheimen Wert ein.
  4. Klicke auf Save.

Hinweis: Aus Sicherheitsgründen wird der Wert einer Variable nach dem Speichern maskiert. Er kann durch Klicken auf das Augen-Symbol neben dem Wert wieder angezeigt werden.

Massen-Upload (.env-Dateien)​

Bei der Migration eines bestehenden Projekts liegt meist bereits eine .env-Datei vor. Anstatt die Variablen einzeln einzutippen, kann die gesamte Datei hochgeladen werden.

  1. Klicke auf die Schaltfläche Bulk Upload.
  2. Ziehe die .env-Datei per Drag-and-Drop in das Modal oder klicke, um eine Datei auszuwählen.
  3. Klicke auf Upload.

Beispiel für eine .env-Datei

STRIPE_API_KEY=scr_12345
TWILIO_API_KEY=abcd1234

Wichtig: Dadurch werden bestehende Variablen mit demselben Key überschrieben.

Variablen in der Anwendung verwenden​

Sobald definiert, stehen diese Variablen der Anwendung genauso zur Verfügung wie jede andere systemweite Umgebungsvariable.

const apiKey = process.env.KEY_NAME;

In deiner CI Pipeline (ci.yml): Diese Umgebungsvariablen können auch in Build- oder Run-Befehlen mittels Standard-Shell-Syntax referenziert werden.

run:
steps:
- name: SERVERNAME
command: ./your-app-server --api-key=$KEYNAME

Du kannst dienstspezifische Umgebungsvariablen direkt in der ci.yml definieren. Details dazu findest du unter Konfiguration der CI Pipeline. Sie können außerdem über Templating auf Workspace-Ebene definierte Umgebungsvariablen aus der UI referenzieren:

run:
my-service:
env:
KEY_NAME: {{ workspace.env.WORKSPACE_ENV_NAME }}

Variablen auf Service-Ebene vs. Workspace-Ebene

Umgebungsvariablen in Codesphere existieren auf zwei Ebenen:

  • Variablen auf Service-Ebene sind auf einen einzelnen Landscape-Service beschränkt und werden direkt in der ci.yml (siehe Konfiguration der CI Pipeline) oder im eigenen env-Block des Services definiert. Sie stehen nur diesem Service zur Verfügung.
  • Variablen auf Workspace-Ebene werden im oben gezeigten Tab Environment Variables definiert und gelten für den gesamten Workspace — für jeden Service sowie jede geöffnete Terminal-Sitzung. Codesphere setzt zudem automatisch einige Variablen auf Workspace-Ebene, wie zum Beispiel WORKSPACE_ID, die die ID des aktuellen Workspace enthält.

Variablen auf Service-Ebene können mit der oben gezeigten Templating-Syntax {{ workspace.env.VARIABLE_NAME }} auf Variablen der Workspace-Ebene verweisen.

hinweis

Änderungen an Umgebungsvariablen auf Workspace-Ebene wirken sich nur in einem neu geöffneten Workspace Terminal aus. Ein Terminal, das bereits geöffnet war, als die Variable geändert oder hinzugefügt wurde, sieht den neuen Wert erst, nachdem es geschlossen und neu geöffnet wurde.