Crea entornos de Cloud Composer

Cloud Composer 1 | Cloud Composer 2

En esta página, se explica cómo crear un entorno de Cloud Composer 1.

Un entorno de Cloud Composer es una instalación independiente de Apache Airflow implementada en un clúster administrado de Google Kubernetes Engine. Puedes crear uno o más entornos en un solo proyecto de Google Cloud.

Antes de comenzar

  • Si creas un entorno con Terraform, la cuenta de servicio que usa Terraform debe tener una función con el permiso composer.environments.create habilitado.

    Para obtener más información sobre la cuenta de servicio de Terraform, consulta la Referencia de la configuración del proveedor de Google.

    Si deseas obtener más información sobre el uso de Terraform a fin de crear un entorno de Cloud Composer, consulta la documentación de Terraform.

    Para obtener más información sobre los parámetros adicionales, consulta la Referencia de argumentos de Terraform.

  • IP privada: existen requisitos específicos de red y de intercambio de tráfico para crear un entorno de IP privada. Para obtener más información, consulta Configura IP privadas.

  • VPC compartida: existen requisitos de red específicos para usar la VPC compartida con Cloud Composer. Para obtener más información, consulta Configurar VPC compartidas.

  • VPC SC: Para implementar entornos de Cloud Composer dentro de un perímetro de seguridad, consulta Configuración de VPC SC. Cuando se usan con Cloud Composer, los Controles del servicio de VPC tienen varias limitaciones conocidas.

Paso 1: Configuración básica

En este paso, se crea un entorno de Cloud Composer con parámetros predeterminados en la ubicación especificada.

Console

  1. En la consola de Google Cloud, ve a la página Crear entorno de Cloud Composer 1.

    Ir a Crear entorno

  2. En el campo Nombre, ingresa un nombre para el entorno.

    El nombre debe comenzar con una letra minúscula seguida por un máximo de 62 letras minúsculas, números o guiones, y no puede terminar con un guion. El nombre del entorno se usa a fin de crear subcomponentes para el entorno, por lo que debes proporcionar un nombre que también sea válido como un nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignación de nombres de bucket a fin de obtener una lista de restricciones.

  3. En la lista desplegable Ubicación, elige una ubicación para tu entorno.

    Una ubicación es la región en la que se encuentra el clúster de GKE del entorno.

  4. Continúa con el siguiente paso o haz clic en Crear para crear un entorno.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.

    El nombre debe comenzar con una letra minúscula seguida por un máximo de 62 letras minúsculas, números o guiones, y no puede terminar con un guion. El nombre del entorno se usa a fin de crear subcomponentes para el entorno, por lo que debes proporcionar un nombre que también sea válido como un nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignación de nombres de bucket a fin de obtener una lista de restricciones.

  • LOCATION por la región del entorno.

    Una ubicación es la región en la que se encuentra el clúster de GKE del entorno.

  • IMAGE_VERSION por el nombre de la imagen de Cloud Composer Si omites este argumento, se usa la imagen más reciente de Cloud Composer para Cloud Composer 1. También puedes usar composer-1-airflow-1.10 para crear un entorno con la última imagen de Cloud Composer.

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15

API

Realiza una solicitud a la API de environments.create. Especifica la configuración en el recurso Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME"
  "config": {
      "softwareConfig": {
        "imageVersion": "IMAGE_VERSION"
      }
    }
}

Reemplaza lo siguiente:

  • PROJECT_ID por el ID del proyecto.

  • LOCATION por la región del entorno.

    Una ubicación es la región en la que se encuentra el clúster de GKE del entorno.

  • ENVIRONMENT_NAME por el nombre del entorno.

    El nombre debe comenzar con una letra minúscula seguida por un máximo de 62 letras minúsculas, números o guiones, y no puede terminar con un guion. El nombre del entorno se usa a fin de crear subcomponentes para el entorno, por lo que debes proporcionar un nombre que también sea válido como un nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignación de nombres de bucket a fin de obtener una lista de restricciones.

  • IMAGE_VERSION por el nombre de la imagen de Cloud Composer Si omites este argumento, se usa la imagen más reciente de Cloud Composer para Cloud Composer 1. También puedes usar composer-1-airflow-1.10 para crear un entorno con la última imagen de Cloud Composer.

Ejemplo:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
      "softwareConfig": {
        "imageVersion": "composer-1.20.12-airflow-1.10.15"
      }
    }
}

Terraform

Para crear un entorno con parámetros predeterminados que especifica una ubicación, agrega el siguiente conjunto de recursos a la configuración de Terraform y ejecuta terraform apply.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.

    El nombre debe comenzar con una letra minúscula seguida por un máximo de 62 letras minúsculas, números o guiones, y no puede terminar con un guion. El nombre del entorno se usa a fin de crear subcomponentes para el entorno, por lo que debes proporcionar un nombre que también sea válido como un nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignación de nombres de bucket a fin de obtener una lista de restricciones.

  • LOCATION por la región del entorno.

    Una ubicación es la región en la que se encuentra el clúster de GKE del entorno.

  • IMAGE_VERSION por el nombre de la imagen de Cloud Composer Si omites este argumento, se usa la imagen más reciente de Cloud Composer para Cloud Composer 1. También puedes usar composer-1-airflow-1.10 para crear un entorno con la última imagen de Cloud Composer.

Ejemplo:

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

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
  }

}

Paso 2: Selecciona una cuenta de servicio para tu entorno (opcional)

Los nodos del clúster de tu entorno se ejecutan como esta cuenta de servicio.

De forma predeterminada, los entornos de Cloud Composer usan la cuenta de servicio predeterminada de Compute Engine. Te recomendamos configurar una cuenta de servicio administrada por el usuario para tus entornos de Cloud Composer.

Luego, no puedes cambiar la cuenta de servicio de tu entorno.

Console

En la página Crear entorno, en la sección Configuración de nodo, en la lista desplegable Cuenta de servicio, selecciona una cuenta de servicio para tu entorno.

gcloud

Cuando creas un entorno, --service-account especifica la cuenta de servicio del entorno.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --service-account "SERVICE_ACCOUNT"

Reemplaza lo siguiente:

  • SERVICE_ACCOUNT por la cuenta de servicio de tu entorno.

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

Cuando creas un entorno, en el recurso Entorno > EnvironmentConfig, especifica una cuenta de servicio para el entorno.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
}

Reemplaza lo siguiente:

  • SERVICE_ACCOUNT por la cuenta de servicio de tu entorno.

Ejemplo:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Terraform

Cuando crees un entorno, usa el campo service_account en el bloque node_config.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Reemplaza lo siguiente:

  • SERVICE_ACCOUNT por la cuenta de servicio de tu entorno.

Ejemplo:

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

  config {
    node_config {
      service_account = "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Paso 3: Configura la escala del entorno y los parámetros de rendimiento (opcional)

A fin de especificar la configuración de escalamiento y rendimiento para tu entorno, proporciona la cantidad de nodos en el clúster de GKE de tu entorno y selecciona tipos de máquinas para los componentes del entorno.

Console

En la página Crear entorno:

  1. En la sección Configuración del nodo, haz lo siguiente:

    • Ingresa la Cantidad de nodos.

      La cantidad de nodos es el número de nodos de Google Kubernetes Engine en el clúster de GKE del entorno. De forma predeterminada, los entornos tienen 3 nodos.

      Puedes cambiar este valor después de crear tu entorno.

    • Elige el Tipo de máquina para los nodos.

      El tipo de máquina para los nodos es el tipo de máquina de Compute Engine que se usa en las instancias del clúster. Este parámetro determina la cantidad de CPU y memoria de tu entorno. El tipo de máquina predeterminado es n1-standard-1.

      Para cambiar este valor después de crear tu entorno, debes volver a configurar el clúster de entorno de forma manual.

    • Ingresa el Tamaño del disco.

      El tamaño del disco, en GB, para los nodos del entorno. Cada nodo de tu entorno tiene esta cantidad de espacio en disco. Selecciona un tamaño de disco más grande si esperas almacenar un gran volumen de datos en carpetas que se sincronizan con las VM del entorno. Por ejemplo, en la carpeta /data del bucket de tu entorno.

      El tamaño mínimo es de 30 GB. El tamaño predeterminado es de 100 GB. No puedes cambiar este parámetro después de crear un entorno.

    • Elige la Cantidad de programadores.

      Tu entorno puede ejecutar más de un programador de Airflow al mismo tiempo. Usa varios programadores para distribuir la carga entre varias instancias del programador a fin de mejorar el rendimiento y la confiabilidad.

      Puedes especificar una cantidad de programadores hasta la cantidad de nodos de tu entorno.

      Aumentar la cantidad de programadores no siempre mejora el rendimiento de Airflow. Por ejemplo, tener solo un programador puede proporcionar un mejor rendimiento que tener dos. Esto puede suceder cuando no se usa el programador adicional y, por lo tanto, consume recursos de tu entorno sin contribuir al rendimiento general. El rendimiento real del programador depende de la cantidad de trabajadores de Airflow, la cantidad de DAG y tareas que se ejecutan en tu entorno y la configuración de Airflow y el entorno.

      Recomendamos comenzar con dos programadores y, luego, supervisar el rendimiento del entorno. Si cambias la cantidad de programadores, siempre puedes volver a escalar el entorno a la cantidad original.

      Para obtener más información sobre la configuración de varios programadores, consulta la documentación de Airflow.

  2. Expande el elemento Herramientas de redes, anulaciones de configuración de Airflow y funciones adicionales.

  3. En la sección Configuración de Cloud SQL, elige Tipo de máquina de Cloud SQL.

    Este parámetro determina el tipo de máquina para la instancia de Cloud SQL que ejecuta la base de datos de Airflow. El tipo de máquina predeterminado de Cloud SQL es db-n1-standard-2.

  4. En la sección Configuración del servidor web, elige Tipo de máquina del servidor web.

    Este parámetro determina el tipo de máquina para la instancia de Compute Engine que ejecuta el servidor web de Airflow.

    El tipo predeterminado de máquina del servidor web es composer-n1-webserver-2.

gcloud

Cuando creas un entorno, los siguientes argumentos controlan el escalamiento del entorno y los parámetros de rendimiento:

  • --node-count especifica la cantidad de nodos de tu entorno

    La cantidad de nodos es el número de nodos de Google Kubernetes Engine en el clúster de GKE del entorno. De forma predeterminada, los entornos tienen 3 nodos.

    Puedes cambiar este valor después de crear tu entorno.

  • --scheduler-count especifica la cantidad de programadores en tu entorno.

    Tu entorno puede ejecutar más de un programador de Airflow al mismo tiempo. Usa varios programadores para distribuir la carga entre varias instancias del programador a fin de mejorar el rendimiento y la confiabilidad.

    Puedes especificar una cantidad de programadores hasta la cantidad de nodos de tu entorno.

    Aumentar la cantidad de programadores no siempre mejora el rendimiento de Airflow. Por ejemplo, tener solo un programador puede proporcionar un mejor rendimiento que tener dos. Esto puede suceder cuando no se usa el programador adicional y, por lo tanto, consume recursos de tu entorno sin contribuir al rendimiento general. El rendimiento real del programador depende de la cantidad de trabajadores de Airflow, la cantidad de DAG y tareas que se ejecutan en tu entorno y la configuración de Airflow y el entorno.

    Recomendamos comenzar con dos programadores y, luego, supervisar el rendimiento del entorno. Si cambias la cantidad de programadores, siempre puedes volver a escalar el entorno a la cantidad original.

    Para obtener más información sobre la configuración de varios programadores, consulta la documentación de Airflow.

  • --disk-size especifica el tamaño del disco para las VM del entorno.

    El tamaño del disco, en GB, para los nodos del entorno. Cada nodo de tu entorno tiene esta cantidad de espacio en disco. Selecciona un tamaño de disco más grande si esperas almacenar un gran volumen de datos en carpetas que se sincronizan con las VM del entorno. Por ejemplo, en la carpeta /data del bucket de tu entorno.

    El tamaño mínimo es de 30 GB. El tamaño predeterminado es de 100 GB. No puedes cambiar este parámetro después de crear un entorno.

  • --machine-type especifica el tipo de máquina para las VM del nodo.

    El tipo de máquina para los nodos es el tipo de máquina de Compute Engine que se usa en las instancias del clúster. Este parámetro determina la cantidad de CPU y memoria de tu entorno. El tipo de máquina predeterminado es n1-standard-1.

    Para cambiar este valor después de crear tu entorno, debes volver a configurar el clúster de entorno de forma manual.

  • --cloud-sql-machine-type especifica el tipo de máquina para la instancia de Cloud SQL.

    Este parámetro determina el tipo de máquina para la instancia de Cloud SQL que ejecuta la base de datos de Airflow. El tipo de máquina predeterminado de Cloud SQL es db-n1-standard-2.

  • --web-server-machine-type especifica el tipo de máquina para la instancia del servidor web de Airflow.

    Este parámetro determina el tipo de máquina para la instancia de Compute Engine que ejecuta el servidor web de Airflow.

    El tipo predeterminado de máquina del servidor web es composer-n1-webserver-2.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone NODE_ZONE \
    --node-count NODE_COUNT \
    --scheduler-count SCHEDULER_COUNT \
    --disk-size DISK_SIZE \
    --machine-type NODE_MACHINE_TYPE \
    --cloud-sql-machine-type SQL_MACHINE_TYPE \
    --web-server-machine-type WS_MACHINE_TYPE

Reemplaza lo siguiente:

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone us-central1-a \
    --node-count 6 \
    --scheduler-count 1 \
    --disk-size 50 \
    --machine-type n1-standard-2 \
    --cloud-sql-machine-type db-n1-standard-2 \
    --web-server-machine-type composer-n1-webserver-2

API

Cuando creas un entorno, en el recurso Entorno > EnvironmentConfig, especifica la escala de entorno y los parámetros de rendimiento.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeCount": NODE_COUNT,
    "nodeConfig": {
      "machineType": "NODE_MACHINE_TYPE",
      "diskSizeGb": DISK_SIZE
    },
    "softwareConfig": {
      "schedulerCount": SCHEDULER_COUNT
    },
    "databaseConfig": {
      "machineType": "SQL_MACHINE_TYPE"
    },
    "webServerConfig": {
      "machineType": "WS_MACHINE_TYPE"
    }
  }
}

Reemplaza lo siguiente:

Ejemplo:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeCount": 6,
    "nodeConfig": {
      "machineType": "projects/example-project/zones/us-central1-a/machineTypes/n1-standard-2",
      "diskSizeGb": 50
    },
    "softwareConfig": {
      "schedulerCount": 1
    },
    "databaseConfig": {
      "machineType": "db-n1-standard-2"
    },
    "webServerConfig": {
      "machineType": "composer-n1-webserver-2"
    }
  }
}

Terraform

Cuando creas un entorno, los siguientes campos controlan el escalamiento del entorno y los parámetros de rendimiento:

  • node_count en el bloque node_config especifica la cantidad de nodos en tu entorno.

    La cantidad de nodos es el número de nodos de Google Kubernetes Engine en el clúster de GKE del entorno. De forma predeterminada, los entornos tienen 3 nodos.

    Puedes cambiar este valor después de crear tu entorno.

  • disk_size_gb en el bloque node_config especifica el tamaño del disco para las VM del entorno.

    El tamaño del disco, en GB, para los nodos del entorno. Cada nodo de tu entorno tiene esta cantidad de espacio en disco. Selecciona un tamaño de disco más grande si esperas almacenar un gran volumen de datos en carpetas que se sincronizan con las VM del entorno. Por ejemplo, en la carpeta /data del bucket de tu entorno.

    El tamaño mínimo es de 30 GB. El tamaño predeterminado es de 100 GB. No puedes cambiar este parámetro después de crear un entorno.

  • machine_type en el bloque node_config especifica el tipo de máquina para las VM del nodo. Cuando especifiques este campo, también proporciona una zona de Compute Engine para las VM de tu entorno en el campo zone.

    El tipo de máquina para los nodos es el tipo de máquina de Compute Engine que se usa en las instancias del clúster. Este parámetro determina la cantidad de CPU y memoria de tu entorno. El tipo de máquina predeterminado es n1-standard-1.

    Para cambiar este valor después de crear tu entorno, debes volver a configurar el clúster de entorno de forma manual.

  • machine_type en el bloque database_config especifica el tipo de máquina para la instancia de Cloud SQL.

    Este parámetro determina el tipo de máquina para la instancia de Cloud SQL que ejecuta la base de datos de Airflow. El tipo de máquina predeterminado de Cloud SQL es db-n1-standard-2.

  • machine_type en el bloque web_server_config especifica el tipo de máquina para la instancia del servidor web de Airflow.

    Este parámetro determina el tipo de máquina para la instancia de Compute Engine que ejecuta el servidor web de Airflow.

    El tipo predeterminado de máquina del servidor web es composer-n1-webserver-2.

  • El campo scheduler_count en el bloque software_config especifica la cantidad de programadores en el entorno. Tu entorno debe usar Airflow 2.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      node_count = NODE_COUNT
      disk_size_gb = DISK_SIZE
      machine_type = "NODE_MACHINE_TYPE"
      zone = "NODE_ZONE"
    }

    software_config {
      scheduler_count = SCHEDULER_COUNT
    }

    database_config {
      machine_type = "SQL_MACHINE_TYPE"
    }

    web_server_config {
      machine_type = "WS_MACHINE_TYPE"
    }
  }
}

Reemplaza lo siguiente:

Ejemplo:

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

  config {

    node_config {
      node_count = 4
      disk_size_gb = 100
      zone = "us-central1-a"
      machine_type = "n1-standard-2"
    }

    software_config {
      scheduler_count = 2
    }

    database_config {
      machine_type = "db-n1-standard-2"
    }

    web_server_config {
      machine_type = "composer-n1-webserver-2"
    }
  }
}

Paso 4: Configura las herramientas de redes de tu entorno (opcional)

Los parámetros de Herramientas de redes dependen del tipo de entorno que deseas crear:

  • Entorno de IP pública: usa los parámetros de red predeterminados.

  • Entorno de IP privada (intercambio de tráfico de VPC). En esta configuración, el entorno utiliza intercambios de tráfico de VPC para la conectividad.

    Configura tu entorno de IP privada:

    1. Configura las redes de tu proyecto para entornos de IP privada.
    2. Especifica otros parámetros para tu entorno de IP privada, como se describe más adelante en esta sección.

    Para un entorno de IP privada con intercambio de tráfico entre VPC, debes saber lo siguiente:

    • El ID de tu red de VPC
    • El ID de tu subred de VPC
    • Dos rangos de IP secundarios en la subred de VPC:

      • Rango de IP secundario para Pods
      • Rango de IP secundario para servicios
    • Rangos de IP para los componentes del entorno:

      • rango de IP para el plano de control de GKE.

      • Rango de IP del servidor web.

      • rango de IP para la instancia de Cloud SQL.

  • Para un entorno de VPC compartida, debes realizar una configuración de Herramientas de redes adicional para el proyecto host y, luego, crear un entorno de IP pública o privada en un proyecto de servicio. Sigue las instrucciones de la página Configuración de la VPC compartida.

    Para un entorno de VPC compartida, necesitas conocer los siguientes datos:

    • El ID de la red de VPC del proyecto host
    • El ID de subred de la VPC del proyecto host
    • Dos rangos de IP secundarios en la subred de VPC del proyecto host:

      • Rango de IP secundario para Pods
      • Rango de IP secundario para servicios

    Cuando creas un entorno de VPC compartida con IP pública, debes especificar la red de VPC del proyecto host, la subred y los rangos de IP secundarios para los Pods y servicios.

  • Para crear un entorno de VPC SC, debes crear un perímetro de servicio y, luego, crear entornos de IP privada dentro de este perímetro. Sigue las instrucciones descritas en Configuración de los Controles del servicio de VPC.

  • Las opciones de Herramientas de redes adicionales para los entornos son las siguientes:

    • Direcciones IP públicas usadas de forma privada: Si deseas usar más direcciones IP, tu entorno puede usar de forma privada ciertos rangos de direcciones IP públicas como rangos de direcciones IP de subred internos para Pods y servicios.
    • Redes autorizadas. Si deseas acceder al plano de control de tu entorno de IP privada mediante HTTPS, puedes usar redes autorizadas para especificar los rangos de CIDR que pueden hacerlo.

    • Agente de enmascaramiento de IP Mediante los entornos con el agente de enmascaramiento de IP, puedes usar traducciones de direcciones IP de muchos a uno en las opciones de configuración de red de tu entorno. Para obtener más información sobre la creación de entornos con el agente de enmascaramiento de IP, consulta Habilita el agente de enmascaramiento de IP.

Console

Para crear un entorno de IP privada, sigue estos pasos:

  1. Asegúrate de que tu red esté configurada para el tipo de entorno que deseas crear.

  2. Expande el elemento Herramientas de redes, anulaciones de configuración de Airflow y funciones adicionales.

  3. En la sección Configuración de red, selecciona la casilla de verificación Habilitar VPC nativa (con un alias de IP).

  4. En la lista desplegable Red, selecciona la ID de tu red de VPC.

  5. En la lista desplegable Subred, selecciona el ID de tu subred de VPC.

  6. En la sección Asignación de direcciones IP del Pod, especifica el rango de IP secundario para pods. Puedes usar un rango secundario existente en la red de VPC o especificar uno nuevo en la notación CIDR.

  7. En la sección Asignación de direcciones IP del servicio, especifica el rango de IP secundario para los servicios. Puedes usar un rango secundario existente en la red de VPC o especificar uno nuevo en la notación CIDR.

  8. En la sección IP privada, selecciona la casilla de verificación Habilitar IP privada.

  9. En la sección IP privada de la instancia principal del clúster de GKE, especifica un rango de IP para el plano de control de GKE:

    • Para usar el rango de IP predeterminado para la región en la que se encuentra el entorno, selecciona Rango de IP predeterminado.

    • Para especificar un rango de IP personalizado, selecciona Rango de IP personalizado y, luego, ingresa un rango en la notación CIDR en el campo IP privada principal de la instancia principal del clúster de GKE.

  10. Selecciona el nivel de acceso para el plano de control de GKE. El plano de control tiene dos extremos. Un extremo es privado, para que lo usen los nodos del clúster y las VM. Otro extremo es público. Puedes especificar el nivel de acceso para el extremo público de la siguiente manera:

    • Para habilitar el acceso al extremo público desde redes autorizadas, selecciona la casilla de verificación Acceder al extremo principal con su dirección IP externa.

      Con esta opción, se configura el nivel de acceso del plano de control en “Acceso al extremo público habilitado, redes autorizadas habilitadas”. Esto proporciona acceso restringido al plano de control desde las redes autorizadas. De forma predeterminada, no se especifican direcciones IP de origen. Puedes agregar redes autorizadas al clúster.

    • Para inhabilitar el acceso al extremo público desde redes autorizadas, desmarca la casilla de verificación Acceder al extremo principal con su dirección IP externa.

      Con esta opción, se configura el nivel de acceso del plano de control en “Acceso al extremo público inhabilitado”. Esto evita todo acceso de Internet al plano de control.

  11. En la sección IP privada del servidor web, especifica un rango de IP para la instancia del servidor web de Airflow.

  12. En la sección IP privada de Cloud SQL, especifica un rango de IP para la instancia de Cloud SQL.

gcloud

Asegúrate de que tu red esté configurada para el tipo de entorno que deseas crear.

Cuando creas un entorno, los siguientes argumentos controlan los parámetros de red. Si omites un parámetro, se usa el valor predeterminado.

  • --enable-ip-alias habilita la VPC nativa con direcciones IP de alias.

    Este parámetro es obligatorio cuando se usa --enable-private-environment o cuando se configuran rangos secundarios para pods y servicios:

  • --enable-private-environment habilita un entorno de IP privada.

  • --network especifica el ID de la red de VPC.

  • --subnetwork especifica el ID de la subred de VPC.

  • --cluster-secondary-range-name o --cluster-ipv4-cidr configuran el rango secundario para los pods.

  • --services-secondary-range-name o --services-ipv4-cidr para configurar el rango secundario de los servicios.

  • --master-ipv4-cidr especifica un rango para el plano de control de GKE.

  • --web-server-ipv4-cidr especifica un rango para la instancia del servidor web de Airflow.

  • --cloud-sql-ipv4-cidr especifica un rango para la instancia de Cloud SQL.

  • --enable-private-endpoint controla el acceso al nivel para el plano de control de GKE. El plano de control tiene dos extremos. Un extremo es privado, para que lo usen los nodos del clúster y las VM. Otro extremo es público. Puedes especificar el nivel de acceso para el extremo público de la siguiente manera:

    • Para habilitar el acceso al extremo público desde redes autorizadas, omite el argumento --enable-private-endpoint.

      Con esta opción, se configura el nivel de acceso del plano de control en “Acceso al extremo público habilitado, redes autorizadas habilitadas”. Esto proporciona acceso restringido al plano de control desde las redes autorizadas. De forma predeterminada, no se especifican direcciones IP de origen. Puedes agregar redes autorizadas al clúster.

    • Para inhabilitar el acceso al extremo público desde redes autorizadas, especifica el argumento --enable-private-endpoint.

      Con esta opción, se configura el nivel de acceso del plano de control en “Acceso al extremo público inhabilitado”. Esto evita todo acceso de Internet al plano de control.

  • --enable-ip-masq-agent habilita el agente de enmascaramiento de IP.

gcloud composer environments create ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version composer-1.20.12-airflow-1.10.15 \
  --enable-ip-alias \
  --enable-private-environment \
  --network NETWORK_ID \
  --subnetwork SUBNETWORK_ID \
  --cluster-ipv4-cidr PODS_RANGE \
  --services-ipv4-cidr SERVICES_RANGE \
  --master-ipv4-cidr CONTROL_PLANE_RANGE \
  --web-server-ipv4-cidr WEB_SERVER_RANGE \
  --cloud-sql-ipv4-cidr SQL_RANGE

Reemplaza lo siguiente:

  • NETWORK_ID por el ID de la red de VPC.
  • SUBNETWORK_ID por el ID de la subred de VPC.
  • PODS_RANGE por el rango secundario para los pods.
  • SERVICES_RANGE por el rango secundario para los servicios.
  • CONTROL_PLANE_RANGE por el rango secundario para el plano de control de GKE.

  • WEB_SERVER_RANGE por el rango secundario para la instancia del servidor web de Airflow.

  • SQL_RANGE por el rango para la instancia de Cloud SQL.

Paso 5: Agrega etiquetas de red (opcional)

Las etiquetas de red se aplican a todas las VM de nodo en el clúster de tu entorno. Las etiquetas se usan con el fin de identificar objetivos o fuentes válidos para firewalls de red. Cada etiqueta de la lista debe cumplir con RFC 1035.

Por ejemplo, es posible que quieras agregar etiquetas de red si planeas restringir el tráfico para un entorno de IP privada con reglas de firewall.

Console

En la página Crear entorno:

  1. Ubica la sección Configuración del nodo.
  2. En el campo Etiquetas, especifica las etiquetas de instancia para las VM del nodo.

gcloud

Cuando creas un entorno, los siguientes argumentos controlan las etiquetas de red:

  • --tags especifica una lista separada por comas de etiquetas de red que se aplican a todas las VM del nodo.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --tags TAGS

Reemplaza lo siguiente:

  • TAGS por una lista de etiquetas de red separadas por comas.

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --tags group1,production

API

Cuando crees un entorno, en el recurso Entorno > EnvironmentConfig, especifica las etiquetas de red de tu entorno.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "tags": [
        "TAG"
      ]
    }
  }
}

Reemplaza lo siguiente:

  • TAG por una etiqueta de red.

Ejemplo:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "tags": [
        "group1",
        "production"
      ]
    }
  }
}

Terraform

Cuando creas un entorno, los siguientes campos definen etiquetas de red para tu entorno:

  • El campo tags en el bloque node_config especifica una lista separada por comas de etiquetas de red que se aplican a todas las VM del nodo.
resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      tags = ["TAGS"]
    }
  }
}

Reemplaza lo siguiente:

  • TAGS por una lista de etiquetas de red separadas por comas.

Ejemplo:

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

  config {
    node_config {
      tags = ["group1","production"]
    }
  }
}

Paso 6. Configura el acceso a la red del servidor web (opcional)

Los parámetros de acceso del servidor web de Airflow no dependen del tipo de entorno. En cambio, puedes configurar el acceso al servidor web por separado. Por ejemplo, un entorno de IP privada aún puede tener la IU de Airflow accesible desde Internet.

En la actualidad, no puedes configurar los rangos de IP permitidos con direcciones IP privadas.

Console

En la página Crear entorno, en la sección Configuración del servidor web, haz lo siguiente:

  • Para proporcionar acceso al servidor web de Airflow desde todas las direcciones IP, selecciona Permitir el acceso desde todas las direcciones IP.

  • Para restringir el acceso solo a rangos de IP específicos, selecciona Permitir el acceso solo desde direcciones IP específicas. En el campo Rango de IP, especifica un rango de IP en la notación CIDR. En el campo Descripción, especifica una descripción opcional para este rango. Si deseas especificar más de un rango, haz clic en Agregar rango de IP.

  • Para prohibir el acceso a todas las direcciones IP, selecciona Permitir el acceso solo desde direcciones IP específicas y haz clic en Borrar elemento junto a la entrada de rango vacío.

gcloud

Cuando creas un entorno, los siguientes argumentos controlan el nivel de acceso del servidor web:

  • --web-server-allow-all proporciona acceso a Airflow desde todas las direcciones IP. Esta es la opción predeterminada.

  • --web-server-allow-ip restringe el acceso solo a rangos de IP de origen específicos. Para especificar varios rangos de IP, usa este argumento varias veces.

  • --web-server-deny-all prohíbe el acceso a todas las direcciones IP.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Reemplaza lo siguiente:

  • WS_IP_RANGE por el rango de IP, en la notación CIDR, que puede acceder a la IU de Airflow
  • WS_RANGE_DESCRIPTION por la descripción del rango de IP

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
    --web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"

API

Cuando creas un entorno, en el recurso Entorno > EnvironmentConfig, especifica los parámetros de acceso al servidor web.

  • Para proporcionar acceso al servidor web de Airflow desde todas las direcciones IP, omite webServerNetworkAccessControl.

  • Para restringir el acceso solo a rangos de IP específicos, especifica uno o más rangos en allowedIpRanges.

  • Para prohibir el acceso a todas las direcciones IP, agrega allowedIpRanges y establécelo en una lista vacía. No especifiques rangos de IP en ella.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    }
  }
}

Reemplaza lo siguiente:

  • WS_IP_RANGE por el rango de IP, en la notación CIDR, que puede acceder a la IU de Airflow
  • WS_RANGE_DESCRIPTION por la descripción del rango de IP

Ejemplo:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    }
  }
}

Terraform

Cuando creas un entorno, el bloque allowed_ip_range en el bloque web_server_network_access_control contiene rangos de IP que pueden acceder al servidor web.

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

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }

    }

  }
}

Reemplaza lo siguiente:

  • WS_IP_RANGE por el rango de IP, en la notación CIDR, que puede acceder a la IU de Airflow
  • WS_RANGE_DESCRIPTION por la descripción del rango de IP

Ejemplo:

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

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "office net 1"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "office net 3"
      }

    }
}

Paso 7: Especifica variables de entorno y anulaciones de configuración de Airflow (opcional)

Puedes establecer anulaciones de configuración de Airflow y variables de entorno cuando creas un entorno. Como alternativa, puedes hacerlo más adelante, después de crear el entorno.

Algunas opciones de configuración de Airflow están bloqueadas y no puedes anularlas.

Para obtener la lista de opciones de configuración de Airflow disponibles, consulta la referencia de configuración para Airflow 2 y Airflow 1.10.*

Para especificar anulaciones de configuración de Airflow y variables de entorno, sigue estos pasos:

Console

En la página Crear entorno:

  1. Expande el elemento Herramientas de redes, anulaciones de configuración de Airflow y funciones adicionales.

  2. En la sección Variables de entorno, haz clic en Agregar variable de entorno.

  3. Ingresa el Nombre y el Valor para la variable de entorno.

  4. En la sección Anulaciones de configuración de Airflow, haz clic en Agregar anulación de configuración de Airflow.

  5. Ingresa la Sección, la Clave y el Valor para la anulación de la opción de configuración.

    Por ejemplo:

    Sección Clave Valor
    webserver dag_orientation TB

gcloud

Cuando creas un entorno, los siguientes argumentos controlan las variables de entorno y las anulaciones de configuración de Airflow:

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

    Los nombres de las variables pueden contener letras mayúsculas y minúsculas, dígitos y guiones bajos, pero no pueden comenzar con un dígito.

  • --airflow-configs especifica una lista de claves y valores separados por comas para anulaciones de configuración de Airflow.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Reemplaza lo siguiente:

  • ENV_VARS por una lista de pares NAME=VALUE separados por comas para variables de entorno.
  • CONFIG_OVERRIDES por una lista de pares SECTION-KEY=VALUE separados por comas para anulaciones de configuración. Separa el nombre de la sección de configuración con un símbolo -, seguido del nombre de la clave. Por ejemplo: core-dags_are_paused_at_creation.

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --env-variables SENDGRID_MAIL_FROM=user@example.com,SENDGRID_API_KEY=example-key \
    --airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB

API

Cuando crees un entorno, en el recurso Entorno > EnvironmentConfig, especifica las variables de entorno y las anulaciones de configuración de Airflow.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "SECTION-KEY": "OVERRIDE_VALUE"
      },
      "envVariables": {
        "VAR_NAME": "VAR_VALUE",
      }
    }
  }
}

Reemplaza lo siguiente:

  • SECTION por la sección del archivo de configuración en la que se encuentra la opción de configuración de Airflow.
  • KEY por el nombre de la opción de configuración de Airflow.
  • OVERRIDE_VALUE por un valor de la opción de configuración de Airflow.
  • VAR_NAME por el nombre de la variable de entorno.
  • VAR_VALUE por el valor de la variable de entorno.

Ejemplo:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "airflowConfigOverrides": {
        "core-dags_are_paused_at_creation": "True",
        "webserver-dag_orientation": "TB"
      },
      "envVariables": {
        "SENDGRID_MAIL_FROM": "user@example.com",
        "SENDGRID_API_KEY": "example-key"
      }
    }
  }
}

Terraform

Cuando creas un entorno, los siguientes bloques controlan las variables de entorno y las anulaciones de configuración de Airflow:

  • El bloque env_variables en el bloque software_config especifica variables de entorno.

    Los nombres de las variables pueden contener letras mayúsculas y minúsculas, dígitos y guiones bajos, pero no pueden comenzar con un dígito.

  • En el bloque airflow_config_overrides del bloque software_config, se especifican las anulaciones de configuración de Airflow.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      airflow_config_overrides = {
        SECTION-KEY = "OVERRIDE_VALUE"
      }

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }
    }
  }
}

Reemplaza lo siguiente:

  • SECTION por la sección del archivo de configuración en la que se encuentra la opción de configuración de Airflow.
  • KEY por el nombre de la opción de configuración de Airflow.
  • OVERRIDE_VALUE por un valor de la opción de configuración de Airflow.
  • VAR_NAME por el nombre de la variable de entorno.
  • VAR_VALUE por el valor de la variable de entorno.

Ejemplo:

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

  config {

    software_config {

      airflow_config_overrides = {
        core-dags_are_paused_at_creation = "True"
        webserver-dag_orientation = "TB"
      }

      env_variables = {
        SENDGRID_MAIL_FROM = "user@example.com"
        SENDGRID_API_KEY = "example-key"
      }
    }
  }
}

Paso 8 Especifica períodos de mantenimiento (opcional)

De forma predeterminada, los períodos de mantenimiento son de 00:00:00 a 04:00:00 (GMT) los viernes, sábados y domingos de cada semana.

Para definir períodos de mantenimiento del entorno, haz lo siguiente:

Console

En la página Crear entorno:

  1. Expande el elemento Herramientas de redes, anulaciones de configuración de Airflow y funciones adicionales.

  2. En la sección Períodos de mantenimiento, selecciona la casilla de verificación Configurar tiempo personalizado para el período de mantenimiento.

  3. En la lista desplegable Zona horaria, elige una zona horaria para los períodos de mantenimiento.

  4. Establece la Hora de inicio, los Días y la Duración, para que la hora combinada del programa especificado sea de al menos 12 horas en un período progresivo de 7 días. Por ejemplo, un período de 4 horas todos los lunes, miércoles y viernes proporciona la cantidad de tiempo requerida.

gcloud

Los siguientes argumentos definen los parámetros de los períodos de mantenimiento:

  • --maintenance-window-start establece la hora de inicio de un período de mantenimiento.
  • --maintenance-window-end establece la hora de finalización de un período de mantenimiento.
  • --maintenance-window-recurrence establece la recurrencia del período de mantenimiento.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME por el nombre del entorno.
  • DATETIME_START por la fecha y hora de inicio en el formato de entrada de fecha y hora. Solo se usa la hora especificada del día, se ignora la fecha especificada.
  • DATETIME_END por la fecha y hora de finalización en el formato de entrada de fecha y hora. Solo se usa la hora especificada del día, se ignora la fecha especificada. La fecha y hora especificadas deben ser posteriores a la fecha de inicio.
  • MAINTENANCE_RECURRENCE por una RULE RFC 5545 para la recurrencia de los períodos de mantenimiento. Cloud Composer admite dos formatos:

  • El formato FREQ=DAILY especifica una recurrencia diaria.

  • El formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA especifica una recurrencia en los días de la semana seleccionados.

En el siguiente ejemplo, se especifica un período de mantenimiento de 6 horas entre las 01:00 y las 7:00 a.m. (UTC) los miércoles, sábados y domingos. Se ignora la fecha del 1 de enero de 2023.

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15 \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

Cuando creas un entorno, en el recurso Entorno > EnvironmentConfig, especifica los parámetros de los períodos de mantenimiento:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "maintenanceWindow": {
        "startTime": "DATETIME_START",
        "endTime": "DATETIME_END",
        "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

Reemplaza lo siguiente:

  • DATETIME_START por la fecha y hora de inicio en el formato de entrada de fecha y hora. Solo se usa la hora especificada del día, se ignora la fecha especificada.
  • DATETIME_END por la fecha y hora de finalización en el formato de entrada de fecha y hora. Solo se usa la hora especificada del día, se ignora la fecha especificada. La fecha y hora especificadas deben ser posteriores a la fecha de inicio.
  • MAINTENANCE_RECURRENCE por una RRULE RFC 5545 para la recurrencia de los períodos de mantenimiento. Cloud Composer admite dos formatos:

  • El formato FREQ=DAILY especifica una recurrencia diaria.

  • El formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA especifica una recurrencia en los días de la semana seleccionados.

En el siguiente ejemplo, se especifica un período de mantenimiento de 6 horas entre las 01:00 y las 7:00 a.m. (UTC) los miércoles, sábados y domingos. Se ignora la fecha del 1 de enero de 2023.

Ejemplo:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "maintenanceWindow": {
        "startTime": "2023-01-01T01:00:00Z",
        "endTime": "2023-01-01T07:00:00Z",
        "recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Terraform

El bloque maintenance_window especifica los períodos de mantenimiento de tu entorno:

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

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

Reemplaza lo siguiente:

  • DATETIME_START por la fecha y hora de inicio en el formato de entrada de fecha y hora. Solo se usa la hora especificada del día, se ignora la fecha especificada.
  • DATETIME_END por la fecha y hora de finalización en el formato de entrada de fecha y hora. Solo se usa la hora especificada del día, se ignora la fecha especificada. La fecha y hora especificadas deben ser posteriores a la fecha de inicio.
  • MAINTENANCE_RECURRENCE por una RRULE RFC 5545 para la recurrencia de los períodos de mantenimiento. Cloud Composer admite dos formatos:

    • El formato FREQ=DAILY especifica una recurrencia diaria.
    • El formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA especifica una recurrencia en los días de la semana seleccionados.

En el siguiente ejemplo, se especifica un período de mantenimiento de 6 horas entre las 01:00 y las 7:00 a.m. (UTC) los miércoles, sábados y domingos. Se ignora la fecha del 1 de enero de 2023.

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

  config {
    maintenance_window {
      start_time = "2023-01-01T01:00:00Z"
      end_time = "2023-01-01T07:00:00Z"
      recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
    }
  }
}

Paso 9. Configura la encriptación de datos (CMEK) (opcional)

De forma predeterminada, los datos en tu entorno se encriptan con una clave que proporciona Google.

Para usar claves de encriptación administradas por el cliente (CMEK) a fin de encriptar datos en tu entorno, sigue las instrucciones que se describen en Uso de claves de encriptación administradas por el cliente.

Paso 10. Especifica etiquetas de entorno (opcional)

Puedes asignar etiquetas a tus entornos para desglosar los costos de facturación según estas etiquetas.

Console

En la página Crear entorno:

  1. Expande el elemento Herramientas de redes, anulaciones de configuración de Airflow y funciones adicionales.

  2. En la sección Etiquetas, haz clic en Agregar etiqueta.

  3. En los campos Clave y Valor, especifica los pares clave-valor para las etiquetas del entorno.

gcloud

Cuando creas un entorno, el argumento --labels especifica una lista separada por comas de claves y valores con etiquetas de entorno.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --labels LABELS

Reemplaza lo siguiente:

  • LABELS por una lista de pares KEY=VALUE separados por comas para etiquetas de entorno.

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --labels owner=engineering-team,env=production

API

Cuando creas un entorno, en el recurso Entorno, especifica etiquetas para tu entorno.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  }
}

Reemplaza lo siguiente:

  • LABEL_KEY por una clave de la etiqueta del entorno.
  • LABEL_VALUE por un valor de la etiqueta del entorno.

Ejemplo:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "labels": {
    "owner": "engineering-team",
    "env": "production"
  }
}

Terraform

Cuando creas un entorno, especifica etiquetas en el bloque labels (fuera del bloque config).

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

Reemplaza lo siguiente:

  • LABEL_KEY por una clave de la etiqueta del entorno.
  • LABEL_VALUE por un valor de la etiqueta del entorno.

Ejemplo:

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

  labels = {
    owner = "engineering-team"
    env = "production"
  }

}

Paso 11. Configura otros parámetros (opcional)

Otros parámetros incluyen los siguientes:

  • Zona para los nodos del entorno.

    Zona de Compute Engine en la que se implementarán los nodos del clúster. En este parámetro, puedes seleccionar una zona específica en la ubicación de tu entorno.

    Según la configuración predeterminada, se selecciona una zona aleatoria de forma automática.

  • Alcances de OAuth

    Los permisos de OAuth son un conjunto de permisos de la API de Google que deben estar disponibles en todas las VM de los nodos. Si está vacío, el valor predeterminado es https://www.googleapis.com/auth/cloud-platform.

    Si especificas permisos de OAuth personalizados, incluye https://www.googleapis.com/auth/cloud-platform en la lista de permisos especificados.

  • Versión de Python

    Si tu entorno usa Airflow 1.10.* y versiones anteriores de Airflow, puedes hacer que tu entorno use Python 2. La versión predeterminada de Python es Python 3. Para obtener más información sobre la compatibilidad con Python 2 en Cloud Composer, consulta las versiones de Python compatibles.

Console

En la página Crear entorno:

  1. En la sección Configuración del nodo, haz lo siguiente:

    • En la lista desplegable Zona, selecciona una zona para tus nodos de entorno.

      No podrás cambiar la zona más tarde.

    • En el campo Permisos de OAuth, especifica los permisos de OAuth para las VM de nodo.

      No puedes cambiar los permisos de OAuth más adelante.

      Para especificar varios permisos de OAuth, proporciona una lista de valores separados por comas. Incluye https://www.googleapis.com/auth/cloud-platform en la lista de permisos especificados.

    • En el campo Versión de Python, elige la versión de Python.

      No podrás cambiar la versión de Python más adelante.

gcloud

Cuando creas un entorno, los siguientes argumentos controlan varios parámetros del entorno:

  • --zone especifica una zona de Compute Engine para las VM de tu entorno.

  • --oauth-scopes especifica una lista de permisos de OAuth separada por comas. Incluye https://www.googleapis.com/auth/cloud-platform en la lista de permisos especificados.

  • --python-version especifica la versión de Python.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone ZONE \
    --oauth-scopes OAUTH_SCOPES \
    --python-version PYTHON_VERSION

Reemplaza lo siguiente:

  • ZONE por el nombre de la zona de Compute Engine
  • OAUTH_SCOPES por una lista separada por comas de permisos de OAuth.
  • PYTHON_VERSION por la versión de Python (3 o 2)

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone us-central1-a \
    --oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery  \
    --python-version 3

API

Cuando creas un entorno, en el recurso Entorno > EnvironmentConfig, especifica varios parámetros del entorno.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "location": "projects/PROJECT_ID/zones/ZONE",
      "oauthScopes": [
        "OAUTH_SCOPE"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "PYTHON_VERSION"
    }
  }
}

Reemplaza lo siguiente:

  • ZONE por el nombre de la zona de Compute Engine
  • OAUTH_SCOPE por un alcance de OAuth. Para especificar permisos adicionales, agrega el permiso https://www.googleapis.com/auth/cloud-platform seguido de los elementos del permiso adicional.
  • PYTHON_VERSION por la versión de Python (3 o 2)

Ejemplo:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "location": "projects/example-project/zones/us-central1-a",
      "oauthScopes": [
        "https://www.googleapis.com/auth/cloud-platform",
        "https://www.googleapis.com/auth/bigquery"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "3"
    }
  }
}

Terraform

Cuando creas un entorno, los siguientes campos controlan varios parámetros del entorno:

  • El campo zone en el bloque node_config especifica una zona de Compute Engine para las VM del entorno.

  • El campo oauth_scopes en el bloque node_config especifica una lista separada por comas de permisos de OAuth.

  • El campo python_version en el bloque software_config especifica la versión de Python.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      zone = "ZONE"
      oauth_scopes = "[OAUTH_SCOPES]"
    }

    software_config {
      python_version = "PYTHON_VERSION"
    }
  }
}

Reemplaza lo siguiente:

  • ZONE por el nombre de la zona de Compute Engine
  • OAUTH_SCOPES por una lista separada por comas de permisos de OAuth.
  • PYTHON_VERSION por la versión de Python (3 o 2)

Ejemplo:

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

  config {
    node_config {
      zone = "us-central1-a"
      oauth_scopes = "[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery]"
    }
    software_config {
      python_version = "3"
    }
  }
}

Paso 12. Aplica el uso de la versión Beta de la API (opcional)

Puedes hacer que tu entorno use de forma explícita la versión Beta de la API de Cloud Composer, incluso si tu entorno no tiene ninguna función de vista previa. Si lo haces, tu entorno se creará mediante el extremo de servicio v1beta1.

Console

En la página Crear entorno:

  1. Expande el elemento Herramientas de redes, anulaciones de configuración de Airflow y funciones adicionales.

  2. En la sección Versión Beta de la API, selecciona la casilla de verificación Aplicar el uso de la versión Beta de la API.

gcloud

Crea tu entorno con el comando gcloud beta composer.

API

Crea tu entorno con el extremo de servicio v1beta1.

Terraform

El proveedor de Terraform para Cloud Composer usa la versión Beta de la API de forma predeterminada.

¿Qué sigue?