Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (1ª gen. heredada)
En esta página, se explica cómo configurar variables de entorno en tu entorno de Managed Airflow.
Puedes usar variables de entorno como alternativa a variables de Airflow cuando proporcionas la configuración del entorno de ejecución para tus DAGs. Las variables de Airflow se configuran en la base de datos de Airflow, mientras que las variables de entorno se configuran en el contenedor del trabajador de Airflow.
Por ejemplo, puedes usar el nombre de una variable de entorno tal como está en un comando que ejecuta un BashOperator, o bien obtener este valor del objeto os.environ en el DAG, o usar una variable de Airflow en su lugar.
Las variables de entorno son persistentes. Una vez que especificas una variable de entorno, Airflow sigue usándola hasta que la quitas de tu entorno.
Managed Service para Apache Airflow establece sus propias variables de entorno reservadas para controlar los entornos.
Formato de nombre
Las variables de entorno deben coincidir con la expresión regular [a-zA-Z_][a-zA-Z0-9_]*.
Opciones de configuración de Airflow
No es posible especificar variables que cambien las opciones de configuración de Apache Airflow.
Las variables no pueden usar el formato AIRFLOW__{SECTION}__{KEY} ni hacer coincidir la expresión regular AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. Por ejemplo, no es posible establecer AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW.
En su lugar, puedes anular las opciones de configuración de Airflow.
Variables reservadas
Managed Airflow reserva los siguientes nombres de variables. No es posible crear variables con estos nombres.
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
Configura variables de entorno para entornos nuevos
Puedes especificar variables de entorno cuando creas un entorno. Para obtener más información, consulta Crea entornos.
Configura variables de entorno para entornos existentes
Console
Para configurar variables de entorno para un entorno existente, haz lo siguiente:
En Google Cloud console, ve a la página Entornos.
En la lista de entornos, haz clic en el nombre de tu entorno. Se abrirá la página Detalles del entorno.
Ve a la pestaña Variables de entorno y haz clic en Editar.
Agrega, cambia o borra variables de entorno para tu entorno:
- En el campo Nombre, especifica el nombre de la variable.
- En el campo Valor, especifica el valor de la variable.
- Para agregar una variable adicional, haz clic en Agregar variable de entorno.
- Para borrar una variable, mantén el puntero sobre una variable y, luego, haz clic en Borrar elemento.
gcloud
Los siguientes argumentos controlan las variables de entorno:
--update-env-variablesespecifica una lista separada por comas de variables de entorno que se crearán o actualizarán.--remove-env-variablesespecifica una lista separada por comas de variables de entorno que se borrarán.--clear-env-variablesborra todas las variables de entorno existentes.
gcloud composer environments update \
ENVIRONMENT_NAME \
--location LOCATION \
--update-env-variables=NAME=VALUE
Reemplaza lo siguiente:
ENVIRONMENT_NAMEpor el nombre del entorno.LOCATIONpor la región en la que se encuentra el entorno.NAMEpor el nombre de la variable que deseas crear o actualizar.VALUEpor el valor de la variable.- Para agregar más de una variable, separa las definiciones con comas:
NAME=VALUE,NAME=VALUE,....
Ejemplo:
gcloud composer environments update \
example-environment \
--location us-central1 \
--update-env-variables=EXAMPLE_VARIABLE=True,ANOTHER_VARIABLE=test
API
Realiza una solicitud a la API de environments.patch.
En esta solicitud, realiza lo siguiente:
En el parámetro
updateMask, especifica la máscaraconfig.softwareConfig.envVariablespara reemplazar todas las variables existentes por las variables especificadas. Se borran las variables que no especificas.En el cuerpo de la solicitud, especifica las variables y sus valores:
{ "config": { "softwareConfig": { "envVariables": { "VAR_NAME": "VAR_VALUE" } } } }Reemplaza lo siguiente:
VAR_NAMEpor el nombre de la variable de entorno.VAR_VALUEpor el valor de la variable de entorno.- Para agregar más de una variable, agrega entradas adicionales para las variables a
envVariables.
Ejemplo:
// 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
El bloque env_variables en el bloque software_config especifica variables de entorno.
resource "google_composer_environment" "example" {
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
}
}
Reemplaza lo siguiente:
ENVIRONMENT_NAMEpor el nombre del entorno.LOCATIONpor la región en la que se encuentra el entorno.VAR_NAMEpor el nombre de la variable de entorno.VAR_VALUEpor el valor de la variable de entorno.- Para agregar más de una variable, agrega entradas adicionales para las variables a
env_variables.
Ejemplo:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
software_config {
env_variables = {
EXAMPLE_VARIABLE = "True"
ANOTHER_VARIABLE = "test"
}
}
}
}