Orbit

Gemeinsame Umgebungsvariablengruppen

An environment variable group holds values that several Orbit projects need, such as a shared API key or a database credential, in one place. Link the group to the projects that need it and every…

Eine Umgebungsvariablengruppe hält Werte, die mehrere Orbit-Projekte benötigen, wie etwa einen gemeinsamen API-Schlüssel oder eine Datenbankverbindung, an einem Ort. Verknüpfen Sie die Gruppe mit den Projekten, die sie benötigen, und jeder ihrer Builds erhält diese Variablen, sodass das Rotieren eines Schlüssels eine Bearbeitung statt sechs ist.

Wo sich Umgebungsvariablengruppen befinden

Öffnen Sie Orbit und wählen Sie Env groups (Umgebungsvariablengruppen) aus der obersten Navigation. Die Seite heißt Shared env var groups (Gemeinsame Umgebungsvariablengruppen) und beschreibt sie als Gruppen auf Kontoebene, die über mehrere Orbit-Projekte hinweg gemeinsam genutzt werden.

Gruppen befinden sich über Projekten. Die eigenen Variablen eines Projekts befinden sich weiterhin auf dessen Registerkarte Env vars: siehe Environment Variables in Orbit.

Wann eine Gruppe verwendet werden sollte

Der Test ist einfach: wird derselbe Wert in mehr als ein Projekt eingefügt?

Gute Kandidaten:

  • Ein gemeinsamer Analyse- oder Fehlererfassungsschlüssel, der von jedem Frontend verwendet wird.
  • Eine Read-Replica-Verbindungszeichenfolge, die von mehreren internen Tools verwendet wird.
  • Ein API-Schlüssel eines Drittanbieters für einen Service, mit dem das gesamte Konto kommuniziert.
  • Ein gemeinsames Feature-Flag-Client-Token.

Schlechte Kandidaten:

  • Alles, das spezifisch für ein Projekt ist. Es gehört auf dieses Projekt.
  • Alles, das sich zwischen Produktion und Vorschau unterscheidet. Gruppen sind nicht pro Umgebung, daher gehört ein Wert, der sich je nach Umgebung ändert, auf die eigenen Umgebungsvariablen des Projekts.

Eine Gruppe erstellen

  1. Klicken Sie auf New group (Neue Gruppe).
  2. Geben Sie einen Group name (Gruppennamen) ein, bis zu 64 Zeichen. Benennen Sie ihn nach dem Inhalt, zum Beispiel der Service, zu dem die Anmeldedaten gehören.
  3. Fügen Sie eine optionale Description (Beschreibung) ein.
  4. Klicken Sie auf Create group (Gruppe erstellen).

Ein Konto kann bis zu 20 Gruppen enthalten. Wenn Sie das Limit erreicht haben, zeigt die Schaltfläche (limit reached) an und das Erstellen einer weiteren Gruppe wird verweigert.

Das Erstellen, Bearbeiten und Löschen einer Gruppe erfordert eine Eigentümer- oder Administratorrolle auf dem Konto. Entwickler und Betrachter können Gruppen sehen, aber nicht ändern, was beabsichtigt ist: Eine Gruppenbearbeitung ändert mehrere Projekte auf einmal.

Variablen hinzufügen

Öffnen Sie die Gruppe und verwenden Sie den Abschnitt Variables (Variablen):

  1. Klicken Sie auf Add variable (Variable hinzufügen).
  2. Geben Sie den Schlüssel und den Wert ein.
  3. Aktivieren Sie Mark as secret (Als Geheimnis markieren) für alles Empfindliche.
  4. Klicken Sie auf Save group (Gruppe speichern).

Eine als Geheimnis markierte Variable wird verschlüsselt gespeichert und ihr Wert wird danach nicht an das Panel zurückgegeben. Die Liste zeigt den Schlüssel und einen Indikator Marked as secret (hidden) (Als Geheimnis markiert (verborgen)) anstelle des Wertes. Nicht geheime Werte bleiben sichtbar, sodass Sie sie auf einen Blick überprüfen können.

Das Markieren einer Variablen als Geheimnis bedeutet, dass Sie sie nicht aus dem Panel zurücklesen können. Das ist der Sinn, aber es bedeutet auch, dass die Gruppe kein Passwort-Manager ist. Behalten Sie die autorisierte Kopie dort auf, wo Ihr Team bereits Anmeldedaten speichert, und behandeln Sie die Gruppe als Verteilungsmechanismus.

Um den Wert eines Geheimnisses zu ändern, geben Sie den neuen ein und speichern. Um eine Variable zu entfernen, klicken Sie in ihrer Zeile auf Remove (Entfernen) und speichern.

Projekte verknüpfen

Der Abschnitt Linked projects (Verknüpfte Projekte) listet jedes Projekt im Konto auf. Klicken Sie auf ein Projekt, um es zu verknüpfen oder die Verknüpfung aufzuheben. Verknüpfte Projekte sind hervorgehoben. Speichern Sie die Gruppe, um die Änderungen anzuwenden.

Eine Gruppe ohne verknüpfte Projekte bewirkt nichts, und der Abschnitt zeigt No projects yet (Noch keine Projekte), bis Sie eines verknüpfen.

Gruppenvariablen werden zur Build-Zeit eingefügt, daher wirkt sich die Verknüpfung eines Projekts auf seinen nächsten Build aus, nicht auf die derzeit aktive Bereitstellung. Wenn Sie die Änderung sofort benötigen, stellen Sie erneut bereit: siehe Deploying Your Project.

Vorrang

Die Regel ist auf der Seite angegeben: Gruppenvariablen werden zur Build-Zeit eingefügt, und Variablen auf Projekt- und Umgebungsebene haben Vorrang vor Gruppenvariablen.

Mit anderen Worten, die spezifischste gewinnt:

  1. Variablen auf Umgebungsebene, höchste Priorität.
  2. Variablen auf Projektebene.
  3. Gruppenvariablen, niedrigste.

Diese Reihenfolge ist nützlich, nicht nur eine technische Feinheit. Legen Sie den gemeinsamen Standard in der Gruppe fest und überschreiben Sie ihn für das eine Projekt, das etwas anderes benötigt, ohne dieses Projekt aus der Gruppe zu entfernen. Siehe Environment Variables Per Environment für die Umgebungsebene.

Es erklärt auch die häufigste Verwirrung mit Gruppen: Sie bearbeiten die Gruppe, stellen erneut bereit, und nichts ändert sich, weil das Projekt seine eigene Variable mit demselben Schlüssel still gewinnt. Überprüfen Sie zuerst die eigene Registerkarte „Env vars" des Projekts, wenn ein Gruppenwert ignoriert zu werden scheint.

Rotation einer gemeinsamen Anmeldedaten

Dies ist der Workflow, für den Gruppen existieren:

  1. Erstellen Sie die neue Anmeldedaten beim Provider und lassen Sie die alte aktiv.
  2. Bearbeiten Sie den Wert in der Gruppe und speichern.
  3. Stellen Sie jedes verknüpfte Projekt erneut bereit, oder warten Sie auf seine nächste Bereitstellung.
  4. Bestätigen Sie, dass jedes Projekt mit den neuen Anmeldedaten funktioniert.
  5. Widerrufen Sie die alte Anmeldedaten beim Provider.

Wenn Sie Schritt 5 zuerst ausführen, erhalten Sie ein Zeitfenster, in dem jedes verknüpfte Projekt auf einmal beschädigt ist, was genau das Risiko ist, das eine gemeinsame Anmeldedaten konzentriert.

Eine Gruppe löschen

Klicken Sie auf „Löschen" in der Gruppe. Die Bestätigung ist spezifisch über die Konsequenz: zukünftige Builds werden diese Variablen verlieren, und bereits abgeschlossene Builds sind nicht betroffen.

Das Löschen hebt auch die Verknüpfung jedes Projekts auf. Das bedeutet, dass die laufenden Bereitstellungen mit den Werten fortfahren, mit denen sie erstellt wurden, und der nächste Build jedes verknüpften Projekts kommt ohne sie aus. Wenn diese Variablen erforderlich sind, schlägt dieser Build fehl oder die App verhält sich zur Laufzeit falsch.

Bevor Sie löschen, heben Sie die Verknüpfung von Projekten einzeln auf und stellen Sie jedes erneut bereit, damit Sie herausfinden, welche tatsächlich von der Gruppe abhängen, bevor alle diese verlieren.

Praktischer Rat

Halten Sie Gruppen klein und zweckmäßig. Eine Gruppe pro externem Service schlägt eine riesige "gemeinsame" Gruppe, da Sie dadurch genau die Projekte verknüpfen können, die jede Sache benötigen.

Benennen Sie Schlüssel überall gleich. Wenn ein Projekt SENTRY_DSN liest und ein anderes SENTRY_KEY liest, kann eine gemeinsame Gruppe nicht helfen. Standardisieren Sie zuerst die Namen.

Geben Sie keine Produktionsanmeldedaten in eine Gruppe ein, die mit Projekten verknüpft ist, die öffentliche Vorschauen haben. Gruppenvariablen erreichen jeden Build eines verknüpften Projekts, auch Vorschauen.

Fehlerbehebung

Ein Build sieht die Variable nicht. Bestätigen Sie, dass das Projekt verknüpft und gespeichert ist, und dass der Build nach dem Erstellen der Verknüpfung ausgeführt wurde. Gruppenvariablen gelten ab dem nächsten Build.

Der Wert ist zur Laufzeit falsch. Eine Variable auf Projekt- oder Umgebungsebene mit demselben Schlüssel überschreibt ihn. Überprüfen Sie die Registerkarte „Env vars" des Projekts.

Gruppe erstellen ist nicht verfügbar. Sie haben das Limit von 20 Gruppen erreicht, oder Ihre Kontorole ist nicht Eigentümer oder Administrator.

Der Wert eines Geheimnisses wird als leer angezeigt. Das ist richtig. Geheime Werte werden nach dem Speichern nicht an das Panel zurückgegeben.

Ein Projekt wurde nach einer Gruppenbearbeitung beschädigt. Setzen Sie den Wert in der Gruppe zurück und stellen Sie erneut bereit, dann können Sie herausfinden, welches Projekt nicht zustimmte. Rolling Back a Deployment bringt die laufende Website in einen ordnungsgemäßen Zustand, während Sie arbeiten.

Nächste Schritte

Benötigen Sie noch Hilfe?

Schreiben Sie uns an support@kapsulehost.com oder öffnen Sie einen Chat in KPanel.

KPanel öffnen
Gemeinsame Umgebungsvariablengruppen