Umgebungsvariablen
Umgebungsvariablen sind nützlich, um deine Anwendung mit Informationen von außerhalb der Anwendung zu versorgen. Sie werden normalerweise verwendet, um Dinge wie Datenbankverbindungsdetails und API-Schlüssel festzulegen.
Sonderzeichen in Umgebungsvariablen
In den Schlüsseln der Umgebungsvariablen kannst du nur a-z, 0-9 oder den Unterstrich (_
) verwenden. Die Werte der Umgebungsvariablen werden wörtlich übernommen, mit Ausnahme von Klammern, Kommas und doppelten Anführungszeichen.
Klammern
Klammern können dazu führen, dass der Build- und Rollout-Prozess fehlschlägt. Sie können nicht in Umgebungsvariablen verwendet werden.
Kommata
Nicht umgeschriebene Kommata werden als Begrenzungszeichen interpretiert und können nicht in Umgebungsvariablen verwendet werden.
- Zum Beispiel:
write_stock,read_orders
führt dazu, dass der Rollout-Prozess fehlschlägt. - Um ein Komma innerhalb eines Strings zu behalten, entferne es mit einem Backslash (
\
) wie:write_stock\,read_orders
— was zuwrite_stock,read_orders
wird.
Doppelte Anführungszeichen
Nicht umgeschriebene Anführungszeichen werden entweder nicht beachtet oder führen dazu, dass der Rollout-Prozess fehlschlägt.
- Zum Beispiel,
"my_example_variable"
wird umgesetzt alsmy_example_variable
. - Um doppelte Anführungszeichen um eine Variable herum beizubehalten, musst du sie mit einem Backslash (
\
) wie:\"my_example_var\"
versehen — das sieht dann so aus"my_example_var"
. - Wenn doppelte Anführungszeichen in einem String stehen (z.B.
my_exampl "e_text
), schlägt der Rollout-Prozess fehl. - Um doppelte Anführungszeichen innerhalb eines Strings zu behalten, entferne sie mit einem Backslash (
\
) so wie:my_examp\"le_var
— was alsmy_examp"le_var
angegeben wird.
Base64-kodierte Variablen
Wenn Ihre Umgebungsvariable Base64-kodiert ist und Sie Probleme haben (z.B. 500 Fehler im Browser, Build-Fehler, Laufzeitfehler usw.), versuchen Sie, den Wert der Variable in einfache Anführungszeichen zu setzen.
In den Anwendungsdetails
Um beim Hinzufügen deiner Anwendung Umgebungsvariablen hinzuzufügen, erweitere den Abschnitt Umgebungsvariablen, gib die Schlüssel-Wert-Paare ein und wähle aus, ob die Variablen während der Laufzeit und/oder des Build-Prozesses verfügbar sein sollen.
Nach der Bereitstellung
Um nach der Bereitstellung Umgebungsvariablen hinzuzufügen, gehe auf die Seite Einstellungen deiner Anwendung, scrolle zum Abschnitt Umgebungsvariablen und klicke auf Umgebungsvariable hinzufügen. Füge die Schlüssel-Wert-Paare im Modal/Pop-up-Fenster Umgebungsvariable hinzufügen hinzu und wähle aus, ob die Variablen während der Laufzeit und/oder des Build-Prozesses verfügbar sein sollen. Klicke auf Änderungenbereitstellen, um deine Variable(n) hinzuzufügen und die Anwendung automatisch neu bereitzustellen.
Bearbeiten von Umgebungsvariablen
Du kannst Variablennamen („Keys“) oder -werte auf der Seite Einstellungen bearbeiten. Um eine Variable zu bearbeiten, klicke auf das Symbol Bearbeiten („Stift“), nimm deine Änderungen vor und klicke auf Änderungenbereitstellen, um deine Variable(n) zu aktualisieren und die Anwendung automatisch neu bereitzustellen.
Wenn du eine interne Verbindung erstellst und das Kontrollkästchen Umgebungsvariablen hinzufügen… aktivierst, werden die Variablennamen („Keys“) automatisch erstellt. Manche Anwendungen erwarten möglicherweise Umgebungsvariablen mit anderen Namen. Wenn du z. B. eine Datenbank mit Laravel verwenden willst, enthält die Datei database.php andere Variablennamen als die, die in MyKinsta automatisch erstellt werden. Um die in der Anwendung definierten Variablennamen zu verwenden, bearbeite jede Variable nach Bedarf und ändere den Key so, dass er dem in der Datei database.php definierten entspricht.
Verwendung von Umgebungsvariablen
Wie du Umgebungsvariablen verwendest, hängt von deiner Anwendung ab. In Node kannst du zum Beispiel mit process.env.API_KEY
auf eine Variable namens API_KEY
zugreifen. In PHP würdest du getenv('API_KEY')
verwenden.
Interne Verbindungen und der Erstellungsprozess
Interne Verbindungen sind nur während der Laufzeit verfügbar; während des Build-Prozesses sind sie nicht verfügbar.
Wenn deine Anwendung versucht, sich während des Build-Prozesses über eine interne Verbindung mit einer Datenbank zu verbinden, führt dies zu einer Fehlermeldung, die besagt, dass die Datenbank nicht läuft, wodurch der Build fehlschlägt. Das ist zu erwarten, weil die interne Verbindung während des Builds nicht aktiv ist; sie kann nur während der Laufzeit verwendet werden.
Es gibt mehrere Möglichkeiten, dieses Problem zu umgehen.
Option 1: Verschiebe die Logik, die die Verbindung zur Datenbank herstellt, vom Build-Befehl der Anwendung zum Start-Befehl. Wenn du z. B. einen Befehl wie prisma migrate
im Build-Prozess hast und diesen Befehl in den Startbefehl verschiebst, greift deine Anwendung nur während der Laufzeit auf die Datenbank zu und der Build wird erfolgreich sein.
Option 2: Füge je nach Bedarf separate Umgebungsvariablen für die Datenbankverbindung hinzu, von denen eine für den Build-Prozess und die andere nur für die Laufzeit verfügbar ist. Die Schlüssel können gleich sein (z.B. DB_CONNECTION_URL
), solange eine nur während des Build-Prozesses und die andere nur während der Laufzeit verfügbar ist. Verwende die Details zur externen Verbindung der Datenbank (Datenbanken > dbname > Info > Externe Verbindungen) für die Werte der Variablen, die im Erstellungsprozess verwendet werden sollen.
Von Kinsta gesetzte Umgebungsvariablen
Kinsta stellt immer PORT
als den vom Webserver verwendeten Port ein. Wenn du möchtest, dass deine Anwendung mit dem Webserver interagiert, musst du diese Umgebungsvariable verwenden. In Node würdest du zum Beispiel so einen Server starten:
app.listen(process.env.PORT, () => {
console.log("Weather server is up and running")
})
Von Kinsta nicht gesetzte Umgebungsvariablen
Standardmäßig ist die Umgebungsvariable NODE_ENV
für Node.js-Anwendungen nicht auf Produktion
gesetzt; du musst diese Umgebungsvariable manuell hinzufügen.
Beispiele für die Umgebungsvariablensprache
Wie du Umgebungsvariablen verwendest, hängt von deiner Anwendung ab. Die folgende Tabelle zeigt, wie eine Umgebungsvariable namens API_KEY in verschiedenen Sprachen aufgerufen werden kann:
Sprache | Code |
---|---|
Ruby | ENV["API_KEY"] |
Node.js | process.env.API_KEY; |
Python | os.environ.get('API_KEY') |
Java | System.getenv("API_KEY"); |
Scala | System.getenv("API_KEY"); |
PHP | getenv('API_KEY'); |
Go | os.Getenv("API_KEY") |