Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina spiega come impostare le variabili di ambiente nel tuo ambiente Cloud Composer.
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 contenitore del worker Airflow.
Ad esempio, puoi utilizzare il nome di una variabile di ambiente così com'è in un comando eseguito da un BashOperator, oppure recuperare questo valore dall'oggetto os.environ
nel DAG o utilizzare una variabile Airflow.
Le variabili di ambiente sono permanenti. Una volta specificata una variabile di ambiente, Airflow continua a utilizzarla finché non la rimuovi dall'ambiente.
Cloud Composer imposta le proprie variabili di ambiente riservate per il controllo degli 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 Cloud Composer. Non è possibile creare variabili con questi nomi.
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
Impostare le variabili di ambiente per i nuovi ambienti
Puoi specificare le variabili di ambiente quando crei un ambiente. Per ulteriori informazioni, consulta Creare ambienti.
Impostare le variabili di ambiente per gli ambienti esistenti
Console
Per impostare le variabili di ambiente per un ambiente esistente:
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Viene visualizzata la pagina Dettagli dell'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 un'altra variabile, fai clic su Aggiungi variabile di ambiente.
- Per eliminare una variabile, tieni premuto il cursore sopra la variabile e fai clic su Elimina elemento.
gcloud
I seguenti argomenti controllano le variabili di ambiente:
--update-env-variables
specifica un elenco separato da virgola di variabili di ambiente da creare o aggiornare.--remove-env-variables
specifica un elenco separato da virgole di variabili di ambiente da eliminare.--clear-env-variables
elimina tutte le variabili di ambiente esistenti.
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=NAME=VALUE
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.NAME
con il nome della variabile che vuoi creare o aggiornare.VALUE
con il valore della variabile.- Per aggiungere più variabili, 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.envVariables
per sostituire tutte le variabili esistenti con le variabili specificate. Le variabili non specificate vengono eliminate.Nel corpo della richiesta, specifica le variabili e i relativi valori:
{ "config": { "softwareConfig": { "envVariables": { "VAR_NAME": "VAR_VALUE" } } } }
Sostituisci:
VAR_NAME
con il nome della variabile di ambiente.VAR_VALUE
con 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" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
}
}
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.VAR_NAME
con il nome della variabile di ambiente.VAR_VALUE
con 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" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}