Umgebungsvariablen für Dienste

Sie können beliebige Umgebungsvariablen für einen Cloud Run-Dienst festlegen. Cloud Run fügt diese Schlüssel/Wert-Paare in den Container ein und macht sie für Ihren Code zugänglich. Sie können sie auch verwenden, um Konfigurationsinformationen an Buildpacks zu übergeben, wenn Sie eine Funktion aus dem Quellcode bereitstellen.

Umgebungsvariablen sind an einen einzelnen Dienst gebunden und sind für andere Dienste in Ihrem Google Cloud-Projekt nicht sichtbar. Jede Variable wird im bereitgestellten Dienst gespeichert und befindet sich im selben Lebenszyklus wie der Dienst, an den sie gebunden ist.

Maximale Anzahl von Umgebungsvariablen

Sie können für einen Cloud Run-Dienst maximal 1.000 Umgebungsvariablen festlegen.

Lebenszyklus von Variablen

Alle Umgebungsvariablen sind an eine Bereitstellung eines Dienstes gebunden und können nur mit einer Bereitstellung festgelegt oder geändert werden. Wenn eine Bereitstellung fehlschlägt, werden Änderungen an Umgebungsvariablen nicht angewendet. Änderungen erfordern eine erfolgreiche Bereitstellung.

Best Practices

Im folgenden Abschnitt werden einige Best Practices für die Konfiguration von Umgebungsvariablen beschrieben.

Secrets verwalten

Sie können Umgebungsvariablen für die Dienstkonfiguration verwenden. Wir empfehlen sie jedoch nicht zum Speichern von Secrets wie Datenbankanmeldedaten oder API-Schlüsseln. Vertrauliche Werte sollten weder im Quellcode noch in Umgebungsvariablen gespeichert werden. Einige Ausführungsumgebungen oder die Verwendung einiger Frameworks können dazu führen, dass die Inhalte von Umgebungsvariablen an Logs gesendet werden. Außerdem empfehlen wir nicht, vertrauliche Anmeldedaten in YAML-Dateien, Bereitstellungsscripts oder in Versionskontrollsystemen zu speichern. Umgebungsvariablen sind für alle Nutzer sichtbar, die die Berechtigungen des Projektbetrachters oder höher haben.

Wir empfehlen die Verwendung von Secret Manager zum Speichern von Secrets. Informationen zum Konfigurieren von Diensten für den Zugriff auf in Secret Manager gespeicherte Secrets finden Sie unter Secrets konfigurieren.

Es gibt keine Cloud Run-spezifische Integration in Cloud KMS.

Reservierte Umgebungsvariablen

Die im Containerlaufzeitvertrag definierten Umgebungsvariablen sind reserviert. Sie können nicht festgelegt werden. Im Speziellen wird die Umgebungsvariable PORT von Cloud Run in Ihren Container eingefügt. Sie sollten die Variable nicht selbst festlegen.

Reservierte Umgebungsvariablen für Funktionen

Cloud Run legt die folgenden Laufzeit-Umgebungsvariablen automatisch fest, wenn Funktionen bereitgestellt werden:

Schlüssel Beschreibung
FUNCTION_TARGET Reserviert: Die auszuführende Funktion.
FUNCTION_SIGNATURE_TYPE Reserviert: Der Typ der Funktion: http für HTTP-Funktionen und event für ereignisgesteuerte Funktionen.
K_SERVICE Reserviert: Der Name der Funktionsressource.
K_REVISION Reserviert: Die Versionskennung der Funktion.
PORT Reserviert: Der Port, über den die Funktion aufgerufen wird.

Je nachdem, welche Laufzeit die Funktion verwendet, werden einige zusätzliche Umgebungsvariablen automatisch festgelegt. Diese basieren auf dem Betriebssystem der Laufzeit (z. B. DEBIAN_FRONTEND, SHLVL oder PATH) und der Sprachlaufzeit (z. B. NODE_ENV, VIRTUAL_ENV oder GOPATH).

Umgebungsvariablen, die von der Umgebung bereitgestellt werden (außer den automatisch festgelegten), können sich in zukünftigen Laufzeitversionen ändern. Als Best Practice empfehlen wir Ihnen, sich nicht auf Umgebungsvariablen zu verlassen und keine Umgebungsvariablen zu ändern, die Sie nicht explizit festgelegt haben.

Das Ändern von Umgebungsvariablen, die von der Umgebung bereitgestellt werden, kann zu unvorhersehbaren Ergebnissen führen. Versuche, solche Umgebungsvariablen zu ändern, könnten blockiert werden oder sogar unbeabsichtigte Auswirkungen haben, wie beispielsweise Funktionen, die nicht gestartet werden können. Als Best Practice empfehlen wir, vor alle Umgebungsvariablen einen eindeutigen Schlüssel zu setzen, um Konflikte zu vermeiden.

Außerdem können Sie die folgenden Umgebungsvariablen nicht verwenden:

Schlüssel Beschreibung
Leer ('') Schlüssel dürfen keine leeren Strings sein.
= Schlüssel dürfen nicht das Gleichheitszeichen (=) enthalten.
X_GOOGLE_ Schlüssel dürfen nicht das Präfix X_GOOGLE_ enthalten.

Limits für die Variablengröße bei Funktionen

Die Gesamtzahl der Byte, die von Namen und Werten von Laufzeit-Umgebungsvariablen für eine einzelne Funktion belegt werden, ist auf 32 KiB begrenzt. Es gibt keine spezifischen Limits für einzelne Schlüssel oder Werte innerhalb dieser Gesamtkapazität.

Für Build-Umgebungsvariablen können bis zu 100 Variablen definiert werden, wobei der Definitionsstring foo=bar auf 64 KiB begrenzt ist.

Portable Umgebungsvariablen in Funktionen verwenden

Umgebungsvariablen, die Sie derzeit in Ihren Funktionen verwenden, funktionieren möglicherweise nicht in anderen Laufzeitumgebungen wie in einer anderen Sprache oder in Kombination mit bestimmten Tools oder Bibliotheken. Außerdem kann es vorkommen, dass sie von einer anderen Plattform nicht akzeptiert werden.

Probleme dieser Art können Sie vermeiden, wenn Sie sich am POSIX-Standard für Umgebungsvariablen orientieren. Wenn Sie die Google Cloud Console zum Bearbeiten von Variablen verwenden, warnt die Google Cloud Console Sie, wenn Sie eine Variable definieren, die möglicherweise Portabilitätsprobleme hat (was aber die Bereitstellung nicht verhindert). Wir empfehlen, dass Schlüssel von Umgebungsvariablen ausschließlich aus Großbuchstaben, Ziffern und <underscore> (_) bestehen (wie in der Tabelle Portable Character Set definiert) und nicht mit einer Ziffer beginnen.