Umgebungsvariablen festlegen

Cloud Composer 1 Cloud Composer 2

Auf dieser Seite wird erläutert, wie Sie Umgebungsvariablen in der Cloud Composer-Umgebung festlegen.

Cloud Composer verwendet die Umgebungsvariablen, um das Laufzeitverhalten von Airflow oder Ihren DAGs zu ändern.

Umgebungsvariablen sind persistent. Nachdem Sie eine Umgebungsvariable angegeben haben, wird sie von Airflow verwendet, bis Sie sie aus Ihrer Umgebung entfernen.

Cloud Composer verwendet beispielsweise E-Mail-Benachrichtigungen mit dem Apache Airflow-Sendgrid-Modul. Zum Konfigurieren von E-Mail-Benachrichtigungen müssen Sie die Umgebungsvariablen SENDGRID_API_KEY und SENDGRID_MAIL_FROM festlegen.

Namensformat

Umgebungsvariablen müssen dem regulären Ausdruck [a-zA-Z_][a-zA-Z0-9_]* entsprechen.

Umgebungsvariablen dürfen keine Überschreibungen der Apache Airflow-Konfiguration angeben. Die Variablen können also weder das Format AIRFLOW__{SECTION}__{KEY} verwenden noch mit dem regulären Ausdruck AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+ übereinstimmen.

Reservierte Variablen

Die folgenden Namen sind reserviert und können nicht verwendet werden:

  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • C_FORCE_ROOT
  • CLOUDSDK_METRICS_ENVIRONMENT
  • COMPOSER_ENVIRONMENT
  • COMPOSER_GKE_NAME
  • COMPOSER_GKE_ZONE
  • COMPOSER_LOCATION
  • COMPOSER_PYTHON_VERSION
  • CONTAINER_NAME
  • DAGS_FOLDER
  • GCP_PROJECT
  • GCS_BUCKET
  • GKE_CLUSTER_NAME
  • GOOGLE_APPLICATION_CREDENTIALS
  • KUBERNETES_PORT
  • KUBERNETES_PORT_443_TCP_PROTO
  • KUBERNETES_PORT_443_TCP_ADDR
  • KUBERNETES_PORT_443_TCP_PORT
  • KUBERNETES_PORT_443_TCP
  • KUBERNETES_SERVICE_HOST
  • KUBERNETES_SERVICE_PORT
  • KUBERNETES_SERVICE_PORT_HTTPS
  • MAJOR_VERSION
  • MINOR_VERSION
  • PROJECT_ID
  • SQL_DATABASE
  • SQL_INSTANCE
  • SQL_HOST
  • SQL_PASSWORD
  • SQL_PROJECT
  • SQL_REGION
  • SQL_USER

Umgebungsvariablen für neue Umgebungen festlegen

Sie können Umgebungsvariablen beim Erstellen einer Umgebung angeben. Weitere Informationen finden Sie unter Umgebungen erstellen.

Umgebungsvariablen für vorhandene Umgebungen festlegen

Console

So legen Sie Umgebungsvariablen für eine vorhandene Umgebung fest:

  1. Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.

    Zur Seite Umgebungen“

  2. Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.

  3. Wechseln Sie zum Tab Umgebungsvariablen und klicken Sie auf Bearbeiten.

  4. Sie können Umgebungsvariablen für Ihre Umgebung hinzufügen, ändern oder löschen:

    • Geben Sie im Feld Name den Variablennamen ein.
    • Geben Sie im Feld Value (Wert) den Variablenwert ein.
    • Klicken Sie auf Umgebungsvariablen hinzufügen, um eine weitere Variable hinzuzufügen.
    • Bewegen Sie den Mauszeiger auf eine Variable und klicken Sie auf Element löschen, um sie zu löschen.

gcloud

Die folgenden Argumente steuern Umgebungsvariablen:

  • --update-env-variables gibt eine durch Kommas getrennte Liste von Umgebungsvariablen an, die erstellt oder aktualisiert werden sollen.

  • --remove-env-variables gibt eine durch Kommas getrennte Liste von zu löschenden Umgebungsvariablen an.

  • --clear-env-variables löscht alle vorhandenen Umgebungsvariablen.

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --update-env-variables=NAME=VALUE

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • NAME durch den Namen der Variablen, die Sie erstellen oder aktualisieren möchten.
  • VALUE durch den Wert der Variablen.
  • Wenn Sie mehrere Variablen hinzufügen möchten, trennen Sie die Definitionen durch Kommas: NAME=VALUE,NAME=VALUE,....

Beispiel:

gcloud composer environments update \
  example-environment \
  --location us-central1 \
  --update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test

API

Erstellen Sie eine API-Anfrage environments.patch.

In dieser Anfrage:

  1. Geben Sie dazu im Parameter updateMask die Maske an:

    • Verwenden Sie die Maske config.softwareConfig.envVariables, um alle vorhandenen Variablen durch die angegebenen Variablen zu ersetzen. Nicht angegebene Variablen werden gelöscht.
    • Mit config.softwareConfig.envVariables.VAR_NAME können Sie eine bestimmte Variable hinzufügen oder aktualisieren. Wenn Sie mehrere Variablen hinzufügen oder aktualisieren möchten, geben Sie mehrere Masken mit Kommas an.
  2. Geben Sie im Anfragetext Variablen und ihre Werte an:

    {
      "config": {
        "softwareConfig": {
          "envVariables": {
            "VAR_NAME": "VAR_VALUE"
          }
        }
      }
    }
    

    Ersetzen Sie:

    • VAR_NAME durch den Namen der Umgebungsvariablen.
    • VAR_VALUE durch den Wert der Umgebungsvariablen.
    • Wenn Sie mehr als eine Variable hinzufügen möchten, fügen Sie envVariables zusätzliche Einträge für Variablen hinzu.

Beispiel:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.envVariables.EXAMPLE_VARIABLE,
// config.softwareConfig.envVariables.ANOTHER_VARIABLE
{
  "config": {
    "softwareConfig": {
      "envVariables": {
        "EXAMPLE_VARIABLE": "True",
        "ANOTHER_VARIABLE": "test"
      }
    }
  }
}

Terraform

Der Block env_variables im Block software_config gibt Umgebungsvariablen an.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }

    }
  }
}

Ersetzen Sie:

  • ENVIRONMENT_NAME durch den Namen der Umgebung.
  • LOCATION durch die Region, in der sich die Umgebung befindet.
  • VAR_NAME durch den Namen der Umgebungsvariablen.
  • VAR_VALUE durch den Wert der Umgebungsvariablen.
  • Wenn Sie mehr als eine Variable hinzufügen möchten, fügen Sie env_variables zusätzliche Einträge für Variablen hinzu.

Beispiel:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {

      env_variables = {
        EXAMPLE_VARIABLE = "True"
        ANOTHER_VARIABLE = "test"
      }

  }
}

Weitere Informationen