Hier erfahren Sie, wie Sie Umgebungsvariablen in Cloud Run for Anthos in Google Cloud erstellen und verwenden.
Wenn Sie Umgebungsvariablen festlegen, werden diese in den Container eingefügt und sind für Ihren Code aufrufbar.
Umgebungsvariablen werden als Schlüssel/Wert-Paare festgelegt. Angenommen, Sie führen einen Dienst aus, der ein zusätzliches Logging ermöglicht, wenn LOGGING_VERBOSE: true
in der Umgebung gelesen wird. In diesem Szenario legen Sie das Schlüssel/Wert-Paar für die Umgebungsvariable auf LOGGING_VERBOSE=true
fest. In den folgenden Abschnitten sind die genauen Befehle oder die jeweilige UI aufgeführt.
Reservierte Namen
Die im Containerlaufzeitvertrag definierten Umgebungsvariablen sind reserviert. Sie können nicht festgelegt werden. Insbesondere wird die Umgebungsvariable PORT
von Cloud Run for Anthos in Google Cloud in Ihren Container eingefügt. Sie sollten die Variable nicht selbst festlegen.
Umgebungsvariablen für einen Dienst festlegen
Jede Konfigurationsänderung führt zur Erstellung einer neuen Überarbeitung. Für nachfolgende Überarbeitungen gilt automatisch dieselbe Konfigurationseinstellung, sofern Sie sie nicht explizit aktualisieren.
Sie können Umgebungsvariablen mit der Cloud Console, dem gcloud-Befehlszeilentool oder einer YAML-Datei festlegen, wenn Sie einen neuen Dienst bereitstellen oder einen vorhandenen Dienst aktualisieren und die Überarbeitung bereitstellen:
Console
Klicken Sie auf Dienst erstellen, wenn Sie einen neuen Dienst für die Bereitstellung konfigurieren. Wenn Sie einen vorhandenen Dienst konfigurieren möchten, klicken Sie auf den Dienst und dann auf Neue Überarbeitung bearbeiten und bereitstellen.
Klicken Sie unter Erweiterte Einstellungen auf Variablen.
Gehen Sie so vor:
- Wenn Sie eine Variable hinzufügen, klicken Sie auf Variable hinzufügen. Dann geben Sie den gewünschten Namen für die Variable und ihren Wert in den Textfeldern Name und Wert an.
- Falls Sie einen Wert für eine Variable ändern möchten, ersetzen Sie den aktuellen Wert im Textfeld Wert durch den gewünschten neuen Wert.
- Möchten Sie eine oder mehrere Umgebungsvariablen entfernen, bewegen Sie den Cursor links neben das Textfeld Wert der Variablen, die Sie entfernen möchten. Daraufhin wird das Papierkorbsymbol angezeigt. Klicken Sie darauf.
Klicken Sie auf Erstellen oder Bereitstellen.
Befehlszeile
Sie können mit einem der folgenden gcloud kuberun
-Befehle Umgebungsvariablen für neue Dienste festlegen oder vorhandene Dienste aktualisieren:
Aktualisieren Sie bei vorhandenen Diensten die Umgebungsvariablen, indem Sie den Befehl
gcloud kuberun core services update
mit einem der folgenden Parameter ausführen:Beispiel:
gcloud kuberun core services update SERVICE --update-env-vars KEY1=VALUE1,KEY2=VALUE2
Ersetzen Sie:
SERVICE
durch den Namen des Dienstes.KEY1=VALUE1,KEY2=VALUE2
durch eine durch Kommas getrennte Liste von Name und Wertpaaren für jede Umgebungsvariable. Geben Sie fürKEY
den Namen der Umgebungsvariablen und fürVALUE
den Wert dieser Umgebungsvariable an. So legen Sie mehrere Parameter fest.-
Um eine Umgebungsvariable anzugeben, die ein Komma (
,
) enthält, müssen Sie jedes KEY=VALUE-Wertepaar mit einem Trennzeichen maskieren. Verwenden Sie beipielsweise@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
Wenn Sie mehrere Gruppen von Schlüssel/Wert-Paaren angeben möchten, können Sie mehrere Parameter angeben, um die Lesbarkeit zu verbessern. Beispiel:
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Optionen für Befehlsparameter
Legen Sie für neue Dienste die Umgebungsvariablen fest, indem Sie den Befehl
gcloud kuberun core services create
mit dem Parameter--set-env-vars
ausführen:gcloud kuberun core services create SERVICE --image=IMAGE_URL --set-env-vars KEY1=VALUE1,KEY2=VALUE2
Ersetzen Sie:
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
gcr.io/myproject/my-image:latest
. SERVICE
durch den Namen des Dienstes.KEY1=VALUE1,KEY2=VALUE2
durch eine durch Kommas getrennte Liste von Name und Wertpaaren für jede Umgebungsvariable. Geben Sie fürKEY
den Namen der Umgebungsvariablen und fürVALUE
den Wert dieser Umgebungsvariable an. So legen Sie mehrere Parameter fest.-
Um eine Umgebungsvariable anzugeben, die ein Komma (
,
) enthält, müssen Sie jedes KEY=VALUE-Wertepaar mit einem Trennzeichen maskieren. Verwenden Sie beipielsweise@
:--set-env-vars "^@^KEY1=value,with,commas@KEY2=anothervalue@KEY3..."
-
Wenn Sie mehrere Gruppen von Schlüssel/Wert-Paaren angeben möchten, können Sie mehrere Parameter angeben, um die Lesbarkeit zu verbessern. Beispiel:
[...] --set-env-vars "KEY=VALUE1" \ --set-env-vars "KEY=VALUE2" \ --set-env-vars "KEY=VALUE3"
Optionen für Befehlsparameter
- IMAGE_URL durch einen Verweis auf das Container-Image, z. B.
YAML
Wenn Sie eine Konfiguration Ihres bestehenden Dienstes mithilfe einer YAML-Datei ändern möchten, erhalten Sie eine Kopie der aktuellen Konfiguration. Bearbeiten und speichern Sie die Änderungen und in einer lokalen Datei. Anschließend stellen Sie diese Änderungen für Ihren Dienst bereit.
Lassen Sie die Konfiguration als YAML anzeigen und kopieren Sie dann die Konfiguration Ihres Dienstes in eine lokale Datei, z. B.
service.yaml
:gcloud kuberun core services describe SERVICE --format yaml
Ersetzen Sie SERVICE durch den Namen Ihres Cloud Run for Anthos-Dienstes.
Aktualisieren Sie in Ihrer lokalen Datei die Attribute
name
undvalue
unter dem Attributenv
unterhalb voncontainers:
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - env: - name: KEY-1 value: VALUE-1 - name: KEY-N value: VALUE-N
Ersetzen Sie:
- SERVICE durch den Namen Ihres Cloud Run for Anthos-Dienstes.
- KEY-1, VALUE-1 durch die Umgebungsvariable und den Wert. Fügen Sie bei Bedarf weitere Variablen und Werte hinzu.
Ersetzen Sie den Dienst mit dem folgenden Befehl durch die neue Konfiguration:
gcloud beta run services replace service.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: Containervariablen vs. Dienstvariablen
Wenn Sie im Container eine Standardumgebungsvariable und außerdem eine Umgebungsvariable mit demselben Namen für den Cloud Run for Anthos-Dienst festlegen, hat der für den Dienst festgelegte Wert Vorrang.
Links zu Kubernetes-Diensten in Cloud Run for Anthos aktivieren
Wenn Sie vorhandene Links zu Kubernetes-Diensten in Cloud Run for Anthos weiterhin verwenden möchten, müssen Sie die Unterstützung für dieses Feature manuell vor Januar 2021 aktivieren. Aufgrund der Leistungsprobleme in Namespaces mit Tausenden von Diensten und Überarbeitungen werden Links zu Kubernetes-Diensten ab Januar 2021 standardmäßig deaktiviert.
Führen Sie zum Aktivieren von Links zu Kubernetes-Diensten den folgenden Befehl aus, um data.enable-service-links
in der ConfigMap knative-serving/config-defaults
auf true
festzulegen:
kubectl patch cm -n knative-serving config-defaults -p '{"data":{"enable-service-links":"true"}}