Airflow gestito (terza generazione) | Airflow gestito (seconda generazione) | Airflow gestito (prima generazione legacy)
Questa pagina spiega come impostare le variabili di ambiente nell'ambiente Airflow gestito.
Puoi utilizzare le variabili di ambiente come alternativa alle variabili Airflow quando fornisci la configurazione di runtime per i tuoi DAG. Le variabili Airflow vengono impostate nel database Airflow, mentre le variabili di ambiente vengono impostate nel container del worker Airflow.
Ad esempio, puoi utilizzare il nome di una variabile di ambiente così com'è in un comando eseguito da un BashOperator, recuperare questo valore dall'oggetto os.environ nel DAG o utilizzare una variabile Airflow.
Le variabili di ambiente sono persistenti. Una volta specificata una variabile di ambiente, Airflow continua a utilizzarla finché non la rimuovi dall'ambiente.
Managed Service for Apache Airflow imposta le proprie variabili di ambiente riservate per controllare gli ambienti.
Formato del nome
Le variabili di ambiente devono corrispondere all'espressione regolare [a-zA-Z_][a-zA-Z0-9_]*.
Opzioni di configurazione di Airflow
Non è possibile specificare variabili che modificano le opzioni di configurazione di Apache Airflow.
Le variabili non possono utilizzare il formato AIRFLOW__{SECTION}__{KEY} o corrispondere all'espressione regolare AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. Ad esempio, non è possibile impostare AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW.
In alternativa, puoi eseguire l'override delle opzioni di configurazione di Airflow.
Variabili riservate
I seguenti nomi di variabili sono riservati da Managed Airflow. Non è possibile creare variabili con questi nomi.
AIRFLOW_DATABASE_VERSIONAIRFLOW_HOMEAIRFLOW_SRC_DIRAIRFLOW_WEBSERVERAUTO_GKECLOUDSDK_METRICS_ENVIRONMENTCLOUD_LOGGING_ONLYCOMPOSER_AGENT_BUILD_SERVICE_ACCOUNTCOMPOSER_ENVIRONMENTCOMPOSER_ENVIRONMENT_SIZECOMPOSER_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_CREDENTIALSMAJOR_VERSIONMINOR_VERSIONPATHPIP_DISABLE_PIP_VERSION_CHECKPORTPROJECT_IDPYTHONPYCACHEPREFIXPYTHONWARNINGSREDIS_PASSWORDREDIS_PORTREDIS_USERSQL_DATABASESQL_HOSTSQL_INSTANCESQL_PASSWORDSQL_PROJECTSQL_REGIONSQL_USER
Impostare le variabili di ambiente per i nuovi ambienti
Puoi specificare le variabili di ambiente quando crei un ambiente. Per ulteriori informazioni, vedi Creare ambienti.
Impostare le variabili di ambiente per gli ambienti esistenti
Console
Per impostare le variabili di ambiente per un ambiente esistente:
Nella Google Cloud console, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.
Vai alla scheda Variabili di ambiente e fai clic su Modifica.
Aggiungi, modifica o elimina le variabili di ambiente per il tuo ambiente:
- Nel campo Nome, specifica il nome della variabile.
- Nel campo Valore, specifica il valore della variabile.
- Per aggiungere una variabile aggiuntiva, fai clic su Aggiungi variabile di ambiente.
- Per eliminare una variabile, tieni il puntatore sopra una variabile, quindi fai clic su Elimina elemento.
gcloud
I seguenti argomenti controllano le variabili di ambiente:
--update-env-variablesspecifica un elenco separato da virgole di variabili di ambiente da creare o aggiornare.--remove-env-variablesspecifica un elenco separato da virgole di variabili di ambiente da eliminare.--clear-env-variableselimina tutte le variabili di ambiente esistenti.
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=NAME=VALUE
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.NAMEcon il nome della variabile che vuoi creare o aggiornare.VALUEcon il valore della variabile.- Per aggiungere più di una variabile, separa le definizioni con virgole:
NAME=VALUE,NAME=VALUE,....
Esempio:
gcloud composer environments update \
example-environment \
--location us-central1 \
--update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test
API
Crea una richiesta API environments.patch.
In questa richiesta:
Nel parametro
updateMask, specifica la mascheraconfig.softwareConfig.envVariablesper sostituire tutte le variabili esistenti con le variabili specificate. Le variabili che non specifichi vengono eliminate.Nel corpo della richiesta, specifica le variabili e i relativi valori:
{ "config": { "softwareConfig": { "envVariables": { "VAR_NAME": "VAR_VALUE" } } } }Sostituisci:
VAR_NAMEcon il nome della variabile di ambiente.VAR_VALUEcon il valore della variabile di ambiente.- Per aggiungere più di una variabile, aggiungi voci aggiuntive per le variabili a
envVariables.
Esempio:
// 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
Il blocco env_variables nel blocco software_config specifica le variabili di ambiente.
resource "google_composer_environment" "example" {
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
}
}
Sostituisci:
ENVIRONMENT_NAMEcon il nome dell'ambiente.LOCATIONcon la regione in cui si trova l'ambiente.VAR_NAMEcon il nome della variabile di ambiente.VAR_VALUEcon il valore della variabile di ambiente.- Per aggiungere più di una variabile, aggiungi voci aggiuntive per le variabili a
env_variables.
Esempio:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}