Umgebungsvariablen konfigurieren
Sie können zusammen mit einer Cloud Run-Funktion beliebige Schlüssel/Wert-Paare bereitstellen. Diese Paare werden Ihrer Funktion entweder als literale Umgebungsvariablenzur Verfügung gestellt, zugänglich durch Ihren Code zur Laufzeit, oder als Konfigurationsinformationen für die Buildpacks von Google Cloud.
Umgebungsvariablen sind an eine einzelne Funktion gebunden und sind für andere Funktionen in Ihrem Google Cloud-Projekt nicht sichtbar. Jede Variable wird im Cloud Run-Backend gespeichert und befindet sich im selben Lebenszyklus wie die Funktion, an die sie gebunden sind.
Sie können Laufzeit-Umgebungsvariablen über die Google Cloud CLI oder die Google Cloud Console hinzufügen oder entfernen.
Laufzeit-Umgebungsvariablen festlegen
Mit den folgenden Methoden können Sie neue Variablen einrichten oder vorhandene Variablen komplett ersetzen. Wenn Sie additive Änderungen vornehmen möchten, verwenden Sie den Aktualisierungsprozess im nächsten Abschnitt.
gcloud
Verwenden Sie zum Festlegen einer Laufzeit-Umgebungsvariablen über die Google Cloud CLI das Flag --set-env-vars
zum Zeitpunkt der Bereitstellung:
gcloud functions deploy FUNCTION_NAME --set-env-vars FOO=bar FLAGS ...
Sie können auch mehrere Laufzeit-Umgebungsvariablen mithilfe einer durch Kommas getrennten Liste festlegen:
gcloud functions deploy FUNCTION_NAME --set-env-vars FOO=bar,BAZ=boo FLAGS...
Wenn Sie Ihre Konfiguration in einer Datei speichern möchten (z. B. unter der Versionsverwaltung), können Sie eine YAML-Datei zusammen mit dem Flag --env-vars-file
verwenden:
gcloud functions deploy FUNCTION_NAME --env-vars-file .env.yaml FLAGS...
Der Inhalt der Datei .env.yaml
ist:
FOO: bar
BAZ: boo
In den obigen Beispielen bezieht sich FLAGS...
auf weitere Optionen, die Sie bei der Bereitstellung der Funktion übergeben. Eine vollständige Referenz zum deploy
-Befehl finden Sie unter gcloud functions deploy
.
Google Cloud Console-UI
Sie können Laufzeit-Umgebungsvariablen festlegen, während Sie die Funktion in der Google Cloud Console erstellen:
Rufen Sie in der Google Cloud Console die Übersichtsseite von Cloud Functions auf:
Klicken Sie auf Funktion erstellen.
Füllen Sie die erforderlichen Felder für die Funktion aus.
Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.
Wählen Sie den Tab Laufzeit aus.
Klicken Sie im Bereich Laufzeit-Umgebungsvariablen auf Variable hinzufügen und fügen Sie den Namen und den Wert hinzu.
Eine Anleitung zum Hinzufügen von Umgebungsvariablen zu einer vorhandenen Funktion finden Sie unter Laufzeit-Umgebungsvariablen aktualisieren.
Laufzeit-Umgebungsvariablen aktualisieren
Sie können Laufzeit-Umgebungsvariablen auch für vorhandene Funktionen aktualisieren. Bei diesem nicht destruktiven Ansatz werden Laufzeit-Umgebungsvariablen geändert oder hinzugefügt, jedoch nicht gelöscht.
gcloud
Verwenden Sie zum Aktualisieren einer Variablen mit der Google Cloud CLI das Flag --update-env-vars
bei der Bereitstellung:
gcloud functions deploy FUNCTION_NAME --update-env-vars FOO=bar
Sie können auch mehrere Laufzeit-Umgebungsvariablen mithilfe einer durch Kommas getrennten Liste aktualisieren:
gcloud functions deploy FUNCTION_NAME --update-env-vars FOO=bar,BAZ=boo
Google Cloud Console-UI
So aktualisieren Sie Laufzeit-Umgebungsvariablen mithilfe der Google Cloud Console:
Rufen Sie in der Google Cloud Console die Übersichtsseite von Cloud Functions auf:
Klicken Sie auf eine vorhandene Funktion, um die zugehörige Detailseite zu öffnen.
Klicken Sie auf Bearbeiten.
Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.
Wählen Sie den Tab Laufzeit aus.
Nehmen Sie die Änderungen im Bereich Laufzeit-Umgebungsvariablen vor.
Laufzeit-Umgebungsvariablen löschen
gcloud
Wenn Sie Laufzeit-Umgebungsvariablen selektiv entfernen möchten, können Sie das Flag --remove-env-vars
bei der Bereitstellung verwenden:
gcloud functions deploy FUNCTION_NAME --remove-env-vars FOO,BAZ
Alternativ können Sie alle zuvor festgelegten Laufzeit-Umgebungsvariablen mit dem Flag --clear-env-vars
löschen:
gcloud functions deploy FUNCTION_NAME --clear-env-vars
Google Cloud Console-UI
So löschen Sie Laufzeit-Umgebungsvariablen mithilfe der Google Cloud Console:
Rufen Sie in der Google Cloud Console die Übersichtsseite von Cloud Functions auf:
Klicken Sie auf eine vorhandene Funktion, um die zugehörige Detailseite zu öffnen.
Klicken Sie auf Bearbeiten.
Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.
Wählen Sie den Tab Laufzeit aus.
Klicken Sie im Bereich Laufzeit-Umgebungsvariablen neben dem Schlüssel/Wert-Paar auf das Papierkorbsymbol, um das Paar zu löschen.
Automatisch festgelegte Laufzeit-Umgebungsvariablen
In diesem Abschnitt werden automatisch festgelegte Laufzeit-Umgebungsvariablen aufgeführt.
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. |
gcloud functions deploy envVarMemory \
--runtime nodejs10 \
--set-env-vars FUNCTION_MEMORY_MB=2Gi \
--memory 2Gi \
--trigger-http
Laufzeit-Umgebungsvariablen festlegen und abrufen: Beispiel
Legen Sie die Laufzeit-Umgebungsvariable fest:
Node.js
gcloud functions deploy envVar \ --runtime nodejs20 \ --set-env-vars FOO=bar \ --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Node.js-Version anzugeben und die Funktion auszuführen.
Python
gcloud functions deploy env_vars \ --runtime python312 \ --set-env-vars FOO=bar \ --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Python-Version anzugeben und die Funktion auszuführen.
Go
gcloud functions deploy EnvVar \ --runtime go121 \ --set-env-vars FOO=bar \ --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Go-Version anzugeben und die Funktion auszuführen.
Java
gcloud functions deploy java-envVar-function \ --entry-point functions.EnvVars \ --runtime java17 \ --memory 512MB \ --set-env-vars FOO=bar \ --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Java-Version anzugeben und die Funktion auszuführen.
C#
gcloud functions deploy csharp-envVar-function \ --entry-point EnvironmentVariables.Function \ --runtime dotnet6 \ --set-env-vars FOO=bar \ --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten .NET-Version anzugeben, um Ihre Funktion auszuführen.
Ruby
gcloud functions deploy env_vars --runtime ruby32 \ --set-env-vars FOO=bar \ --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten Ruby-Version anzugeben, um die Funktion auszuführen.
PHP
gcloud functions deploy envVar --runtime php82 \ --set-env-vars FOO=bar \ --trigger-http
Verwenden Sie das Flag --runtime
, um die Laufzeit-ID einer unterstützten PHP-Version anzugeben und die Funktion auszuführen.
Greifen Sie zur Laufzeit programmatisch auf die Variablen zu:
Node.js
Verwenden Sie in Node.js das Attribut process.env
, um auf Laufzeit-Umgebungsvariablen zuzugreifen:
Python
Verwenden Sie in Python os.environ
, um auf Laufzeit-Umgebungsvariablen zuzugreifen:
Go
Verwenden Sie in Go os.Getenv()
, um auf Laufzeit-Umgebungsvariablen zuzugreifen:
Java
Verwenden Sie in Java System.getenv
, um auf Laufzeit-Umgebungsvariablen zuzugreifen:
C#
Zur Laufzeit ist der Zugriff auf Umgebungsvariablen mitEnvironment.GetEnvironmentVariable
in C# möglich:
Ruby
Zur Laufzeit ist der Zugriff auf Umgebungsvariablen mitENV
in Ruby möglich:
PHP
Zur Laufzeit können Sie über die Funktiongetenv
von PHP auf Umgebungsvariablen zugreifen:
Build-Umgebungsvariablen verwenden
Sie können auch Build-Umgebungsvariablen für Laufzeiten festlegen, die Buildpacks unterstützen.
Build-Umgebungsvariablen sind Schlüssel/Wert-Paare, die zusammen mit einer Funktion bereitgestellt werden und Ihnen ermöglichen, Konfigurationsinformationen an Buildpacks zu übergeben. Sie können damit beispielsweise Compiler-Optionen anpassen. Diese Build-Umgebungsvariablen lassen sich entweder über die Google Cloud CLI oder die Google Cloud Console-Benutzeroberfläche hinzufügen oder entfernen.
Build-Umgebungsvariablen festlegen
Mit den folgenden Methoden können Sie neue Variablen einrichten oder vorhandene Variablen komplett ersetzen. Für additive Änderungen verwenden Sie den Aktualisierungsvorgang (das Flag --update-build-env-vars
in gcloud
), der im nächsten Abschnitt beschrieben wird.
gcloud
Verwenden Sie zum Festlegen einer Variablen mit der Google Cloud-Befehlszeile das Flag --set-build-env-vars
bei der Bereitstellung:
gcloud beta functions deploy FUNCTION_NAME --set-build-env-vars FOO=bar FLAGS...
Sie können auch mehrere Build-Umgebungsvariablen mithilfe einer durch Kommas getrennten Liste festlegen:
gcloud functions deploy FUNCTION_NAME --set-build-env-vars FOO=bar,BAZ=boo FLAGS...
Wenn Sie Ihre Konfiguration in einer Datei speichern möchten (z. B. unter der Versionsverwaltung), können Sie eine YAML-Datei zusammen mit dem Flag --build-env-vars-file
verwenden:
gcloud functions deploy FUNCTION_NAME --build-env-vars-file FILE_NAME.yaml FLAGS...
Der Inhalt der Datei *.yaml
ist:
FOO: bar
BAZ: boo
In den obigen Beispielen bezieht sich FLAGS...
auf weitere Optionen, die Sie bei der Bereitstellung der Funktion übergeben. Eine vollständige Referenz zum deploy
-Befehl finden Sie unter gcloud beta functions deploy
.
Google Cloud Console-UI
Sie können Build-Umgebungsvariablen auch festlegen, während Sie die Funktion in der Google Cloud Console erstellen:
Rufen Sie in der Google Cloud Console die Übersichtsseite von Cloud Functions auf:
Klicken Sie auf Funktion erstellen.
Füllen Sie die erforderlichen Felder für die Funktion aus.
Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.
Wählen Sie den Tab Erstellen aus.
Klicken Sie im Bereich Build-Umgebungsvariablen auf Variable hinzufügen und fügen Sie den Namen und den Wert hinzu.
Build-Umgebungsvariablen aktualisieren
Sie können Build-Umgebungsvariablen auch für vorhandene Funktionen aktualisieren. Bei diesem nicht destruktiven Ansatz werden Build-Umgebungsvariablen geändert oder hinzugefügt, jedoch nicht gelöscht.
gcloud
Verwenden Sie zum Festlegen einer Variablen mit der Google Cloud-Befehlszeile das Flag --update-build-env-vars
bei der Bereitstellung:
gcloud functions deploy FUNCTION_NAME --update-build-env-vars FOO=bar
Sie können auch mehrere Build-Umgebungsvariablen mithilfe einer durch Kommas getrennten Liste aktualisieren:
gcloud functions deploy FUNCTION_NAME --update-build-env-vars FOO=bar,BAZ=boo
Google Cloud Console-UI
So aktualisieren Sie Build-Umgebungsvariablen mithilfe der Google Cloud Console:
Rufen Sie in der Google Cloud Console die Übersichtsseite von Cloud Functions auf:
Klicken Sie auf eine vorhandene Funktion, um die zugehörige Detailseite zu öffnen.
Klicken Sie auf Bearbeiten.
Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.
Wählen Sie den Tab Erstellen aus.
Nehmen Sie die Änderungen im Bereich Build-Umgebungsvariablen vor.
Build-Umgebungsvariablen löschen
gcloud
Wenn Sie Build-Umgebungsvariablen selektiv entfernen möchten, können Sie das Flag --remove-build-env-vars
bei der Bereitstellung verwenden:
gcloud functions deploy FUNCTION_NAME --remove-build-env-vars FOO,BAZ
Alternativ können Sie alle zuvor festgelegten Build-Umgebungsvariablen mit dem Flag --clear-build-env-vars
löschen:
gcloud functions deploy FUNCTION_NAME --clear-build-env-vars
Google Cloud Console-UI
So löschen Sie Build-Umgebungsvariablen mithilfe der Google Cloud Console:
Rufen Sie in der Google Cloud Console die Übersichtsseite von Cloud Functions auf:
Klicken Sie auf eine vorhandene Funktion, um die zugehörige Detailseite zu öffnen.
Klicken Sie auf Bearbeiten.
Öffnen Sie den Bereich Laufzeit-, Build- und Verbindungseinstellungen.
Wählen Sie den Tab Erstellen aus.
Klicken Sie im Bereich Build-Umgebungsvariablen neben dem Schlüssel/Wert-Paar auf das Papierkorbsymbol, um das Paar zu löschen.
Lebenszyklus von Variablen
Alle Umgebungsvariablen sind an eine Bereitstellung einer Cloud Run-Funktion 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 und reservierte Umgebungsvariablen
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 in automatisch festgelegten Umgebungsvariablen aufgelisteten), könnten sich in zukünftigen Laufzeitversionen ändern. Als Best Practice empfehlen wir Ihnen, sich nur auf Umgebungsvariablen zu verlassen oder Umgebungsvariablen zu ändern, die Sie 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.
Die folgenden Umgebungsvariablen können Sie 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. |
Größenbeschränkungen
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.
Secrets verwalten
Umgebungsvariablen können zur Funktionskonfiguration verwendet werden. Zum Speichern von Secrets wie Datenbankanmeldedaten oder API-Schlüsseln werden sie jedoch nicht empfohlen. Diese vertraulicheren Informationen 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. Vertrauliche Anmeldedaten sollten außerdem nicht in YAML-Dateien, Bereitstellungsskripts oder in der Versionsverwaltung gespeichert werden.
Wir empfehlen die Verwendung von Secret Manager zum Speichern von Secrets. Informationen zum Konfigurieren von Cloud Run-Funktionen für den Zugriff auf in Secret Manager gespeicherte Secrets finden Sie unter Secrets konfigurieren. Beachten Sie, dass Cloud KMS über keine für Cloud Run-Funktionen spezifische Integration verfügt.
Portabilität
Umgebungsvariablen, die Sie derzeit in einer Cloud Run-Funktion 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). Als allgemeine Regel empfehlen wir, 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.