Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Auf dieser Seite wird erläutert, wie Sie Umgebungsvariablen in Ihrer Cloud Composer-Umgebung festlegen.
Sie können Umgebungsvariablen als Alternative zu Airflow-Variablen verwenden, wenn Sie eine Laufzeitkonfiguration für Ihre DAGs angeben. Airflow-Variablen werden in der Airflow-Datenbank festgelegt, während Umgebungsvariablen im Container des Airflow-Workers festgelegt werden.
Sie können beispielsweise den Namen einer Umgebungsvariablen in einem Befehl verwenden, der von einem BashOperator ausgeführt wird, oder diesen Wert aus dem os.environ
-Objekt im DAG abrufen oder stattdessen eine Airflow-Variable verwenden.
Umgebungsvariablen sind persistent. Nachdem Sie eine Umgebungsvariable angegeben haben, verwendet Airflow diese so lange, bis Sie die Variable aus Ihrer Umgebung entfernen.
Cloud Composer legt eigene reservierte Umgebungsvariablen für die Steuerung von Umgebungen fest.
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 also nicht das Format AIRFLOW__{SECTION}__{KEY}
oder den regulären Ausdruck AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+
verwenden. Es ist beispielsweise nicht möglich, AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW
festzulegen.
Stattdessen können Sie Airflow-Konfigurationsoptionen überschreiben.
Reservierte Variablen
Die folgenden Variablennamen sind in 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_AGENT_BUILD_SERVICE_ACCOUNT
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
GOOGLE_CLOUD_PROJECT
MAJOR_VERSION
MINOR_VERSION
PATH
PIP_DISABLE_PIP_VERSION_CHECK
PORT
PROJECT_ID
PYTHONPYCACHEPREFIX
PYTHONWARNINGS
REDIS_PASSWORD
REDIS_PORT
REDIS_USER
SQL_DATABASE
SQL_HOST
SQL_INSTANCE
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:
Rufen Sie in der Google Cloud Console die Seite Umgebungen auf.
Klicken Sie in der Liste der Umgebungen auf den Namen Ihrer Umgebung. Die Seite Umgebungsdetails wird geöffnet.
Klicken Sie auf den Tab Umgebungsvariablen und dann auf Bearbeiten.
So fügen Sie Umgebungsvariablen für Ihre Umgebung hinzu, ändern sie oder löschen sie:
- Geben Sie im Feld Name den Variablennamen ein.
- 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, halten Sie den Mauszeiger darauf und klicken Sie 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 der zu löschenden Umgebungsvariablen an.Mit
--clear-env-variables
werden alle vorhandenen Umgebungsvariablen gelöscht.
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.- Ersetzen Sie
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:
Geben Sie im Parameter
updateMask
die Maskeconfig.softwareConfig.envVariables
an, um alle vorhandenen Variablen durch die angegebenen Variablen zu ersetzen. Nicht angegebene Variablen werden gelöscht.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 mehrere Variablen hinzufügen möchten, fügen Sie
envVariables
zusätzliche Einträge für Variablen hinzu.
Beispiel:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.envVariables
{
"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" {
provider = google-beta
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 mehrere Variablen hinzufügen möchten, fügen Sie
env_variables
zusätzliche Einträge für Variablen hinzu.
Beispiel:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}