Configure las variables de entorno

Cloud Composer 1 | Cloud Composer 2

En esta página, se explica cómo configurar variables de entorno en el entorno de Cloud Composer.

Cloud Composer usa las variables de entorno para alterar el comportamiento del entorno de ejecución de Airflow o tus DAG.

Las variables de entorno son persistentes. Cuando especificas una variable de entorno, Airflow sigue usándola hasta que quitas la variable de tu entorno.

Por ejemplo, Cloud Composer usa el módulo de Sendgrid de Apache Airflow para las notificaciones por correo electrónico. Para configurar las notificaciones por correo electrónico, debes establecer las variables de entorno SENDGRID_API_KEY y SENDGRID_MAIL_FROM.

Formato de nombre

Las variables de entorno deben coincidir con la expresión regular [a-zA-Z_][a-zA-Z0-9_]*.

Las variables de entorno no deben especificar anulaciones de configuración de Apache Airflow. Esto significa que las variables no pueden usar el formato AIRFLOW__{SECTION}__{KEY} ni hacer coincidir la expresión regular AIRFLOW__[A-Z0-9_]+__[A-Z0-9_]+.

Variables reservadas

Los siguientes nombres están reservados y no se pueden utilizar:

  • AIRFLOW_HOME
  • AIRFLOW_SRC_DIR
  • C_FORCE_ROOT
  • CLOUDSDK_METRICS_ENVIRONMENT
  • COMPOSER_ENVIRONMENT
  • COMPOSER_GKE_NAME
  • COMPOSER_GKE_ZONE
  • COMPOSER_LOCATION
  • COMPOSER_PYTHON_VERSION
  • CONTAINER_NAME
  • DAGS_FOLDER
  • GCP_PROJECT
  • GCS_BUCKET
  • GKE_CLUSTER_NAME
  • GOOGLE_APPLICATION_CREDENTIALS
  • KUBERNETES_PORT
  • KUBERNETES_PORT_443_TCP_PROTO
  • KUBERNETES_PORT_443_TCP_ADDR
  • KUBERNETES_PORT_443_TCP_PORT
  • KUBERNETES_PORT_443_TCP
  • KUBERNETES_SERVICE_HOST
  • KUBERNETES_SERVICE_PORT
  • KUBERNETES_SERVICE_PORT_HTTPS
  • MAJOR_VERSION
  • MINOR_VERSION
  • SQL_DATABASE
  • SQL_INSTANCE
  • SQL_HOST
  • SQL_PASSWORD
  • SQL_PROJECT
  • SQL_REGION
  • SQL_USER

Establezca variables de entorno para los entornos nuevos

Puedes especificar variables de entorno cuando creas un entorno. Para obtener más información, consulta Cómo crear entornos.

Configure variables de entorno para entornos existentes

Console

Para configurar las variables de entorno de un entorno existente, siga estos pasos:

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

    Ir a Entornos

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

  3. Vaya a la pestaña Variables de entorno y haga clic en Editar.

  4. Agrega, cambia o borra variables de entorno para tu entorno:

    • En el campo Name, especifica el nombre de la variable.
    • En el campo Value, especifique 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-variables especifica una lista separada por comas de variables de entorno para crear o actualizar.

  • --remove-env-variables especifica una lista separada por comas de variables de entorno para borrar.

  • --clear-env-variables borra todas las variables de entorno existentes.

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

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • LOCATION por la región donde se encuentra el entorno
  • NAME por el nombre de la variable que deseas crear o actualizar
  • VALUE por 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:

  1. En el parámetro updateMask, especifica la máscara:

    • Usa la máscara config.softwareConfig.envVariables para reemplazar todas las variables existentes con las variables especificadas. Se borran las variables que no especificas.
    • Usa config.softwareConfig.envVariables.VAR_NAME para agregar o actualizar una variable específica. Para agregar o actualizar varias variables, especifica varias máscaras con comas.
  2. En el cuerpo de la solicitud, especifica las variables y sus valores:

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

    Reemplaza lo siguiente:

    • VAR_NAME por el nombre de la variable de entorno.
    • VAR_VALUE por el valor de la variable de entorno.
    • Si deseas agregar más de una variable, agrega entradas adicionales para variables a envVariables.

Ejemplo:

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.softwareConfig.envVariables.EXAMPLE_VARIABLE,
// config.softwareConfig.envVariables.ANOTHER_VARIABLE
{
  "config": {
    "softwareConfig": {
      "envVariables": {
        "EXAMPLE_VARIABLE": "True",
        "ANOTHER_VARIABLE": "test"
      }
    }
  }
}

Terraform

El bloque env_variables del 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_NAME por el nombre del entorno.
  • LOCATION por la región donde se encuentra el entorno
  • VAR_NAME por el nombre de la variable de entorno.
  • VAR_VALUE por el valor de la variable de entorno.
  • Si deseas agregar más de una variable, agrega entradas adicionales para variables a env_variables.

Ejemplo:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {

      env_variables = {
        EXAMPLE_VARIABLE = "True"
        ANOTHER_VARIABLE = "test"
      }

  }
}

¿Qué sigue?