Umgebungsvariablen für Instanzen konfigurieren

Auf dieser Seite wird beschrieben, wie Sie Umgebungsvariablen für Ihre Cloud Run-Instanz konfigurieren.

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen zuzuweisen, um die Berechtigungen zu erhalten, die Sie zum Konfigurieren und Bereitstellen von Cloud Run-Instanzen benötigen:

Eine Liste der IAM-Rollen und -Berechtigungen im Zusammenhang mit Cloud Run finden Sie unter IAM-Rollen für Cloud Run und IAM-Berechtigungen für Cloud Run. Wenn Ihre Cloud Run-Instanz mit Google Cloud APIs wie Cloud-Clientbibliotheken verknüpft ist, lesen Sie die Konfigurationsanleitung für Dienstidentitäten. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Bereitstellungsberechtigungen und Zugriff verwalten.

Umgebungsvariablen festlegen

Sie können Umgebungsvariablen für eine Cloud Run-Instanz mit der Google Cloud CLI oder YAML festlegen:

gcloud

Verwenden Sie das --set-env-vars Flag, um Umgebungsvariablen beim Erstellen der Instanz anzugeben:

gcloud beta run instances create INSTANCE --image IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2

Ersetzen Sie Folgendes:

  • INSTANCE: durch den Namen der Instanz
  • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
  • KEY1=VALUE1,KEY2=VALUE2: die durch Kommas getrennte Liste der Variablen namen und -werte

Weitere Informationen zum Festlegen mehrerer Umgebungsvariablen oder zum Escapen von Sonderzeichen finden Sie unter Mehrere Umgebungsvariablen festlegen.

YAML

  1. Wenn Sie eine neue Instanz erstellen, überspringen Sie diesen Schritt. Wenn Sie eine vorhandene Instanz aktualisieren, laden Sie die zugehörige YAML-Konfiguration herunter:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. Das folgende Beispiel enthält die YAML-Konfiguration:

    apiVersion: run.googleapis.com/v1
    kind: Instance
    metadata:
      name: INSTANCE
      annotations:
        run.googleapis.com/launch-stage: BETA
    spec:
      containers:
      - env:
        - name: KEY
          value: VALUE
        - name: KEY2
          value: VALUE2
        image: IMAGE

    Ersetzen Sie Folgendes:

    • INSTANCE: durch den Namen Ihrer Cloud Run-Instanz.
    • KEY und VALUE: durch den Namen und die Werte der Umgebungsvariablen.
    • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
  3. Erstellen oder aktualisieren Sie die Instanz mit dem folgenden Befehl:

    gcloud beta run instances replace instance.yaml

Standardumgebungsvariablen im Container festlegen

Sie können die ENV Anweisung in einer Dockerfile verwenden, um Standardwerte für Umgebungsvariablen festzulegen:

ENV KEY1=VALUE1,KEY2=VALUE2

Reihenfolge der Priorität: Container- im Vergleich zu Instanzvariablen

Wenn im Container eine Standardumgebungsvariable und für die Cloud Run-Instanz eine Umgebungsvariable mit demselben Namen festgelegt ist, hat der für die Instanz festgelegte Wert Vorrang.

Mehrere Umgebungsvariablen festlegen

Sie können mehrere Umgebungsvariablen mit der Datei .env oder dem Flag --set-env-vars festlegen.

Mehrere Umgebungsvariablen mit der Datei .env festlegen

gcloud

Führen Sie den folgenden Befehl aus, um mehrere Umgebungsvariablen aus der Datei .env anzugeben:

gcloud beta run instances create INSTANCE --image IMAGE_URL --env-vars-file=ENV_FILE_PATH

Ersetzen Sie Folgendes:

  • INSTANCE: durch den Namen der Instanz.
  • IMAGE_URL: ein Verweis auf das Container-Image, z. B. us-docker.pkg.dev/cloudrun/container/hello:latest.
  • ENV_FILE_PATH: durch den Pfad zur Datei .env.

Mehrere Umgebungsvariablen mit dem Flag --set-env-vars festlegen

Wenn Sie mehrere Umgebungsvariablen haben, die nicht im Format KEY1=VALUE1,KEY2=VALUE2 aufgelistet werden können, können Sie das Flag --set-env-vars mehrmals wiederholen:
   [...]
   --set-env-vars "KEY1=VALUE1" \
   --set-env-vars "KEY2=VALUE2" \
   --set-env-vars "KEY3=VALUE3"

Escape-Zeichen

Da das Komma , verwendet wird, um Umgebungsvariablen aufzuteilen, wenn Ihre Umgebungsvariable Kommas als Werte enthält, müssen Sie diese Trennzeichen vermeiden und ein anderes Trennzeichen angeben, zum Beispiel @:
--set-env-vars "^@^KEY1=value1,value2,value3@KEY2=..."

Umgebungsvariablen aktualisieren

Sie können Laufzeitumgebungsvariablen für vorhandene Instanzen aktualisieren. Bei diesem nicht destruktiven Ansatz werden Laufzeitumgebungsvariablen geändert oder hinzugefügt, jedoch nicht gelöscht.

Sie können Umgebungsvariablen mit der Google Cloud CLI oder YAML aktualisieren:

gcloud

Verwenden Sie das --update-env-vars Flag, um Umgebungsvariablen einer vorhandenen Instanz zu aktualisieren:

gcloud beta run instances update INSTANCE --update-env-vars KEY1=VALUE1,KEY2=VALUE2

Ersetzen Sie Folgendes:

  • INSTANCE: durch den Namen der Instanz
  • KEY1=VALUE1,KEY2=VALUE2: die durch Kommas getrennte Liste der Variablen namen und -werte

YAML

  1. Laden Sie die YAML-Konfiguration der Instanz herunter:

    gcloud beta run instances describe INSTANCE --format export > instance.yaml
  2. Bearbeiten Sie die Variablen für Schlüssel (Name) und Wert.

  3. Aktualisieren Sie die Instanz mit dem folgenden Befehl:

    gcloud beta run instances replace instance.yaml

Umgebungsvariablen löschen

gcloud

Verwenden Sie das --remove-env-vars Flag, um Umgebungsvariablen selektiv aus einer vorhandenen Instanz zu entfernen:

gcloud beta run instances update INSTANCE --remove-env-vars KEY1,KEY2

Ersetzen Sie Folgendes:

  • INSTANCE: durch den Namen der Instanz
  • KEY1,KEY2: die durch Kommas getrennte Liste der Variablennamen

Alternativ können Sie alle zuvor festgelegten Umgebungsvariablen mit dem --clear-env-vars Flag löschen:

gcloud beta run instances update INSTANCE --clear-env-vars

Ersetzen Sie INSTANCE durch den Namen Ihrer Instanz.

Beispielcode

Ein Codebeispiel für den Zugriff auf Umgebungsvariablen in Ihrem Code, finden Sie in der Anleitung zur Endnutzerauthentifizierung unter Mit Secret Manager vertrauliche Konfigurationen verwalten.

Nächste Schritte

Sie können Umgebungsvariablen verwenden, um eine Buildpacks Konfiguration festzulegen. Sprachspezifische Details finden Sie in der Buildpacks-Dokumentation für: