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, um die Laufzeitkonfiguration für Ihre DAGs bereitzustellen. 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 unverändert 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 zur 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 Apache Airflow-Konfigurationsoptionen ändern.
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_VERSIONAIRFLOW_HOMEAIRFLOW_SRC_DIRAIRFLOW_WEBSERVERAUTO_GKECLOUDSDK_METRICS_ENVIRONMENTCLOUD_LOGGING_ONLYCOMPOSER_AGENT_BUILD_SERVICE_ACCOUNTCOMPOSER_ENVIRONMENTCOMPOSER_GKE_LOCATIONCOMPOSER_GKE_NAMECOMPOSER_GKE_ZONECOMPOSER_LOCATIONCOMPOSER_OPERATION_UUIDCOMPOSER_PYTHON_VERSIONCOMPOSER_VERSIONCONTAINER_NAMEC_FORCE_ROOTDAGS_FOLDERGCE_METADATA_TIMEOUTGCP_PROJECTGCP_TENANT_PROJECTGCSFUSE_EXTRACTEDGCS_BUCKETGKE_CLUSTER_NAMEGKE_IN_TENANTGOOGLE_APPLICATION_CREDENTIALSGOOGLE_CLOUD_PROJECTMAJOR_VERSIONMINOR_VERSIONPATHPIP_DISABLE_PIP_VERSION_CHECKPORTPROJECT_IDPYTHONPYCACHEPREFIXPYTHONWARNINGSREDIS_PASSWORDREDIS_PORTREDIS_USERSQL_DATABASESQL_HOSTSQL_INSTANCESQL_PASSWORDSQL_PROJECTSQL_REGIONSQL_USER
Umgebungsvariablen für neue Umgebungen festlegen
Sie können Umgebungsvariablen angeben, wenn Sie eine Umgebung erstellen. 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.
Wechseln Sie zum Tab Umgebungsvariablen und klicken Sie auf Bearbeiten.
So fügen Sie Umgebungsvariablen für Ihre Umgebung hinzu, ändern oder löschen 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 auf die Variable und klicken Sie dann auf Element löschen.
gcloud
Die folgenden Argumente steuern Umgebungsvariablen:
--update-env-variablesgibt eine durch Kommas getrennte Liste von Umgebungsvariablen an, die erstellt oder aktualisiert werden sollen.--remove-env-variablesgibt eine durch Kommas getrennte Liste der zu löschenden Umgebungsvariablen an.Mit
--clear-env-variableswerden alle vorhandenen Umgebungsvariablen gelöscht.
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=NAME=VALUE
Ersetzen Sie:
ENVIRONMENT_NAMEdurch den Namen der Umgebung.LOCATIONdurch die Region, in der sich die Umgebung befindet.NAMEdurch den Namen der Variablen, die Sie erstellen oder aktualisieren möchten.VALUEdurch 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
updateMaskdie Maskeconfig.softwareConfig.envVariablesan, um alle vorhandenen Variablen durch die angegebenen Variablen zu ersetzen. Variablen, die Sie nicht angeben, werden gelöscht.Geben Sie im Anfragetext Variablen und ihre Werte an:
{ "config": { "softwareConfig": { "envVariables": { "VAR_NAME": "VAR_VALUE" } } } }Ersetzen Sie:
VAR_NAMEdurch den Namen der Umgebungsvariablen.VAR_VALUEdurch den Wert der Umgebungsvariablen.- Wenn Sie mehrere Variablen hinzufügen möchten, fügen Sie
envVariableszusä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_NAMEdurch den Namen der Umgebung.LOCATIONdurch die Region, in der sich die Umgebung befindet.VAR_NAMEdurch den Namen der Umgebungsvariablen.VAR_VALUEdurch den Wert der Umgebungsvariablen.- Wenn Sie mehrere Variablen hinzufügen möchten, fügen Sie
env_variableszusä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"
}
}
}
}