Establece variables de entorno:

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

En esta página se explica cómo definir variables de entorno en tu entorno de Cloud Composer.

Puedes usar variables de entorno como alternativa a las variables de Airflow cuando proporciones la configuración del tiempo de ejecución de tus DAGs. Las variables de Airflow se definen en la base de datos de Airflow, mientras que las variables de entorno se definen en el contenedor del trabajador de Airflow.

Por ejemplo, puedes usar el nombre de una variable de entorno tal cual en un comando que ejecute un BashOperator, obtener este valor del objeto os.environ del DAG o usar una variable de Airflow.

Las variables de entorno son persistentes. Una vez que especifiques una variable de entorno, Airflow seguirá usándola hasta que la elimines de tu entorno.

Cloud Composer define 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 se pueden especificar variables que cambien las opciones de configuración de Apache Airflow.

Las variables no pueden usar el formato AIRFLOW__{SECTION}__{KEY} ni coincidir con la expresión regular AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+. Por ejemplo, no es posible definir AIRFLOW__WEBSERVER__DAG_DEFAULT_VIEW.

En su lugar, puedes anular las opciones de configuración de Airflow.

Variables reservadas

Cloud Composer reserva los siguientes nombres de variables. No se pueden crear variables con estos nombres.

  • 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
  • GCE_METADATA_TIMEOUT
  • 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

Definir variables de entorno para entornos nuevos

Puedes especificar variables de entorno al crear un entorno. Para obtener más información, consulta Crear entornos.

Definir variables de entorno para entornos ya creados

Consola

Para definir variables de entorno en un entorno ya creado, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre del entorno. Se abrirá la página Detalles del entorno.

  3. Ve a la pestaña Variables de entorno y haz clic en Editar.

  4. Añade, cambia o elimina variables de entorno de tu entorno:

    • En el campo Nombre, especifica el nombre de la variable.
    • En el campo Valor, especifica el valor de la variable.
    • Para añadir una variable adicional, haz clic en Añadir variable de entorno.
    • Para eliminar una variable, coloca el puntero sobre ella y haz clic en Eliminar elemento.

gcloud

Los siguientes argumentos controlan las variables de entorno:

  • --update-env-variables especifica una lista de variables de entorno separadas por comas que se van a crear o actualizar.

  • --remove-env-variables especifica una lista separada por comas de variables de entorno que se van a eliminar.

  • --clear-env-variables elimina todas las variables de entorno.

gcloud composer environments update \
  ENVIRONMENT_NAME \
  --location LOCATION \
  --update-env-variables=NAME=VALUE

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.
  • NAME con el nombre de la variable que quieras crear o actualizar.
  • VALUE con el valor de la variable.
  • Para añadir 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

Crea una solicitud de la API environments.patch.

En esta solicitud:

  1. En el parámetro updateMask, especifica la máscara config.softwareConfig.envVariables para sustituir todas las variables por las variables especificadas. Las variables que no especifiques se eliminarán.

  2. En el cuerpo de la solicitud, especifica las variables y sus valores:

    {
      "config": {
        "softwareConfig": {
          "envVariables": {
            "VAR_NAME": "VAR_VALUE"
          }
        }
      }
    }
    

    Sustituye:

    • VAR_NAME con el nombre de la variable de entorno.
    • VAR_VALUE con el valor de la variable de entorno.
    • Para añadir más de una variable, añada 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 del bloque software_config especifica las variables de entorno.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }

    }
  }
}

Sustituye:

  • ENVIRONMENT_NAME con el nombre del entorno.
  • LOCATION con la región en la que se encuentra el entorno.
  • VAR_NAME con el nombre de la variable de entorno.
  • VAR_VALUE con el valor de la variable de entorno.
  • Para añadir más de una variable, añada entradas adicionales para las variables a env_variables.

Ejemplo:

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"
      }
    }
  }
}

Siguientes pasos