Umgebungsvariablen festlegen

Cloud Composer 1 Cloud Composer 2

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

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

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

Für E-Mail-Benachrichtigungen verwendet Cloud Composer beispielsweise das Sendgrid-Modul von Apache Airflow. 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.

Airflow-Konfigurationsoptionen

Es ist nicht möglich, Variablen anzugeben, die die Konfigurationsoptionen von Apache Airflow ändern.

Die Variablen können nicht das Format AIRFLOW__{SECTION}__{KEY} verwenden und nicht dem regulären Ausdruck AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+ entsprechen. Es ist beispielsweise nicht möglich, AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW festzulegen.

Stattdessen können Sie die Airflow-Konfigurationsoptionen überschreiben.

Reservierte Variablen

Die folgenden Variablennamen sind für Cloud Composer reserviert. Es ist nicht möglich, Variablen mit diesen Namen zu erstellen.

  • AIRFLOW_DATABASE_VERSION
  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • AIRFLOW_WEBSERVER
  • AUTO_GKE
  • CLOUDSDK_METRICS_ENVIRONMENT
  • CLOUD_LOGGING_ONLY
  • COMPOSER_ENVIRONMENT
  • COMPOSER_GKE_LOCATION
  • COMPOSER_GKE_NAME
  • COMPOSER_GKE_ZONE
  • COMPOSER_LOCATION
  • COMPOSER_OPERATION_UUID
  • COMPOSER_PYTHON_VERSION
  • COMPOSER_VERSION
  • CONTAINER_NAME
  • C_FORCE_ROOT
  • DAGS_FOLDER
  • GCP_PROJECT
  • GCP_TENANT_PROJECT
  • GCSFUSE_EXTRACTED
  • GCS_BUCKET
  • GKE_CLUSTER_NAME
  • GKE_IN_TENANT
  • GOOGLE_APPLICATION_CREDENTIALS
  • MAJOR_VERSION
  • MINOR_VERSION
  • PATH
  • PIP_DISABLE_PIP_VERSION_CHECK
  • PORT
  • PROJECT_ID
  • PYTHONPYCACHEPREFIX
  • SQL_DATABASE
  • SQL_HOST
  • SQL_INSTANCE
  • SQL_PASSWORD
  • SQL_PROJECT
  • SQL_REGION
  • SQL_USER

Umgebungsvariablen für neue Umgebungen festlegen

Sie können beim Erstellen einer Umgebung Umgebungsvariablen 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. Rufen Sie den Tab Umgebungsvariablen auf und klicken Sie auf Bearbeiten.

  4. Fügen Sie Umgebungsvariablen für Ihre Umgebung hinzu, ändern oder löschen Sie sie:

    • Geben Sie im Feld Name den Variablennamen an.
    • Geben Sie im Feld Wert den Variablenwert ein.
    • Wenn Sie eine zusätzliche Variable hinzufügen möchten, klicken Sie auf Umgebungsvariable hinzufügen.
    • Wenn Sie eine Variable löschen möchten, bewegen Sie den Mauszeiger darauf und klicken Sie dann auf Element 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 Umgebungsvariablen an, die gelöscht werden sollen.

  • --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 für die Variable.
  • 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 im Parameter updateMask die Maske config.softwareConfig.envVariables an, um alle vorhandenen Variablen durch die angegebenen Variablen zu ersetzen. Nicht angegebene Variablen werden gelöscht.

  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 zusätzliche Einträge für Variablen in envVariables hinzu.

Beispiel:

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

Terraform

Der env_variables-Block im software_config-Block 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 zusätzliche Einträge für Variablen in env_variables hinzu.

Beispiel:

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

  config {

    software_config {

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

Nächste Schritte