Crea entornos

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. Consulta Arquitectura del entorno para obtener más información.

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.

    Si deseas obtener más información sobre la cuenta de servicio para Terraform, consulta la Referencia de configuración de proveedores de Google.

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

    Para obtener más información sobre los parámetros adicionales, consulta 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 información, consulta Configura la VPC compartida.

  • VPC SC: Para implementar entornos de Cloud Composer dentro de un perímetro de seguridad, consulta Configura 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 con parámetros predeterminados en la ubicación especificada.

El entorno usa la imagen predeterminada de Cloud Composer para Cloud Composer 1.

Console

  1. En Google Cloud Console, ve a la página Crear entorno para Cloud Composer 1.

    Ir a Crear entorno

  2. En el campo Name, ingresa un nombre para tu 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 nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignar nombres de depósitos 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 de Compute Engine en la que se encuentra el clúster de GKE del entorno.

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

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION

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 nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignar nombres de depósitos a fin de obtener una lista de restricciones.

  • LOCATION por la región del entorno

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

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1

API

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME"
}

Reemplaza lo siguiente:

  • PROJECT_ID por el ID del proyecto

  • LOCATION por la región del entorno

    Una ubicación es la región de Compute Engine 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 nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignar nombres de depósitos a fin de obtener una lista de restricciones.

Ejemplo:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment"

}

Terraform

Para crear un entorno con parámetros predeterminados es una ubicación especificada, agrega el siguiente bloque de recursos a tu configuración de Terraform y ejecuta terraform apply.

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

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 nombre de bucket de Cloud Storage. Consulta los Lineamientos para asignar nombres de depósitos a fin de obtener una lista de restricciones.

  • LOCATION por la región del entorno

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

Ejemplo:

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

Paso 2: Selecciona versiones de Cloud Composer y Airflow (opcional)

Para crear un entorno con una versión específica de Cloud Composer y Airflow, haz lo siguiente:

Console

En la página Crear entorno, en la sección Configuración de nodos, en la lista desplegable Versión de la imagen, selecciona Imagen de Cloud Composer con la versión requerida de Airflow

gcloud

  1. Elige una imagen de Cloud Composer con la versión requerida de Airflow.

  2. Cuando crees un entorno, usa el argumento --image-version.

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

    Reemplaza lo siguiente:

    • IMAGE_VERSION por el nombre de la imagen de Cloud Composer

    Ejemplo:

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

API

  1. Elige una imagen de Cloud Composer con la versión requerida de Airflow.

  2. Cuando crees un entorno, en el recurso Environment > EnvironmentConfig > SoftwareConfig, usa la Campo imageVersion.

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

Reemplaza lo siguiente:

  • IMAGE_VERSION por el nombre de la 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.16.5-airflow-1.10.15"
    }
  }
}

Terraform

  1. Elige una imagen de Cloud Composer con la versión requerida de Airflow.

  2. Cuando crees un entorno, usa el campo image_version en el bloque software_config.

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

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

Reemplaza lo siguiente:

  • IMAGE_VERSION por el nombre de la imagen de Cloud Composer

Ejemplo:

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

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

Paso 3: 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.

No puedes cambiar la cuenta de servicio de tu entorno más adelante.

Console

En la página Crear entorno, en la sección Configuración de nodos, 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 de tu entorno.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

Cuando crees un entorno, en el recurso Entorno > EnvironmentConfig, especifica una cuenta de servicio para tu 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 4: Configura el escalamiento del entorno y los parámetros de rendimiento (opcional)

Si deseas 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 de entorno.

Console

En la página Crear entorno, sigue estos pasos:

  1. En la sección Configuración del nodo, sigue estos pasos:

    • Ingresa el Recuento de nodos.

      El recuento de nodos es la cantidad 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 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 para las instancias de clústeres. Este parámetro determina la cantidad de CPU y de memoria del entorno. El tipo de máquina predeterminado es n1-standard-1.

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

    • Ingresa el Tamaño de disco.

      El tamaño del disco, en GB, para los nodos del entorno. Cada nodo del 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 20 GB. El tamaño predeterminado es de 100 GB. No puedes cambiar este parámetro después de crear un entorno.

    • Elige el Número 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 obtener un mejor rendimiento y confiabilidad. Puedes especificar una cantidad de programadores hasta la cantidad de nodos en tu entorno.

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

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

      Para obtener más información sobre cómo configurar 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 de Cloud SQL predeterminado 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 de máquina del servidor web predeterminado es composer-n1-webserver-2.

gcloud

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

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

    El recuento de nodos es la cantidad 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 el 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 obtener un mejor rendimiento y confiabilidad. Puedes especificar una cantidad de programadores hasta la cantidad de nodos en tu entorno.

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

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

    Para obtener más información sobre cómo configurar 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 del 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 20 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 para las instancias de clústeres. Este parámetro determina la cantidad de CPU y de memoria del entorno. El tipo de máquina predeterminado es n1-standard-1.

    Para cambiar este valor después de crear el 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 de Cloud SQL predeterminado 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 de máquina del servidor web predeterminado es composer-n1-webserver-2.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 \
    --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 crees un entorno, en el recurso Environment > EnvironmentConfig, especifica la escala del 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:


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

// With preview features (multiple schedulers):
// POST https://composer.googleapis.com/v1beta1/{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 campos siguientes controlan la escala del entorno y los parámetros de rendimiento:

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

    El recuento de nodos es la cantidad 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 del 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 20 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 de nodo. Cuando especifiques este campo, proporciona también una zona de Compute Engine para las VM del 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 para las instancias de clústeres. Este parámetro determina la cantidad de CPU y de memoria del entorno. El tipo de máquina predeterminado es n1-standard-1.

    Para cambiar este valor después de crear el 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 de Cloud SQL predeterminado 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 de máquina del servidor web predeterminado es composer-n1-webserver-2.

  • No se puede especificar la cantidad de programadores que usan Terraform.

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

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

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

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

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

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

  • Para un Entorno de IP pública, usa los parámetros de red predeterminados.

  • Para un entorno de IP privado, debes configurar una red adicional en el proyecto y, luego, crear un entorno. Para conocer los pasos necesarios, consulta Configura un entorno de IP privada de Cloud Composer.

    Para un entorno de IP privada, debes saber lo siguiente:

    • Tu ID de red de VPC
    • Tu ID de 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
    • Tres rangos de IP para los componentes del entorno:

      • Rango de IP para el plano de control de GKE
      • Rango de IP para la instancia del servidor web de Airflow
      • 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 en la página Configura la VPC compartida.

    Para un entorno de VPC compartida, debes saber lo siguiente:

    • El ID de la red de VPC del proyecto host
    • El ID de subred de 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 de IP pública, debes especificar la red de VPC del proyecto host, la subred y los rangos de IP secundarios para 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 Configura los Controles del servicio de VPC.

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

    • Agente de enmascaramiento de IP. Si usas entornos con el agente de enmascaramiento de IP, puedes usar traducciones de direcciones IP de muchos a uno en la configuración de red del 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 las herramientas de redes estén configuradas 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 alias de IP).

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

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

  6. En la sección Asignación de dirección IP del Pod, especifique 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, especifique 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, especifique 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 del campo IP privada 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 y las VM del clúster. Otra final es pública. Puedes especificar el nivel de acceso para el extremo público:

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

      Si usas esta opción, se configura el nivel de acceso para el 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, desmarque la casilla de verificación Acceder al extremo de la instancia principal con su dirección IP externa.

      Si usas esta opción, se configura el nivel de acceso para el plano de control en "Acceso al extremo público inhabilitado". Esto evita todo acceso a Internet al plano de control.

  11. En la sección IP privada del servidor web, especifique 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 las herramientas de redes estén configuradas para el tipo de entorno que deseas crear.

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

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

    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 de 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 y las VM del clúster. Otra final es pública. Puedes especificar el nivel de acceso para el extremo público:

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

      Si usas esta opción, se configura el nivel de acceso para el 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.

      Si usas esta opción, se configura el nivel de acceso para el plano de control en "Acceso al extremo público inhabilitado". Esto evita todo acceso a Internet al plano de control.

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

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 de la instancia de Cloud SQL

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 tu entorno. En su lugar, 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.

Console

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

  • Para proporcionar acceso a Airfow desde Internet a los usuarios autorizados, selecciona Permitir el acceso desde todas las direcciones IP.

  • Para restringir el acceso solo a rangos de IP específicos, selecciona Permitir 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.

gcloud

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

  • --web-server-allow-all proporciona acceso a Airfow desde Internet a usuarios autorizados. 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.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 \
    --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 crees un entorno, en el recurso Environment > EnvironmentConfig, especifica los parámetros de acceso del servidor web.

{
  "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 del bloque web_server_network_access_control contiene rangos de IP que pueden acceder al servidor web.

resource "google_composer_environment" "example" {
  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" {
  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 las anulaciones de la configuración de Airflow y las variables de entorno (opcional)

Puedes configurar 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 tu entorno.

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

A fin de obtener la lista de las opciones de configuración de Airflow disponibles, consulta la Referencia de configuración para Airflow 2 y Airflow 1.10.*

Para especificar las anulaciones de configuración de Airflow y las variables de entorno, haz lo siguiente:

Console

En la página Crear entorno, sigue estos pasos:

  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 anular 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 es posible que no comiencen con un dígito.

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

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Reemplaza lo siguiente:

  • ENV_VARS con una lista de pares NAME=VALUE separados por comas para variables de entorno.
  • CONFIG_OVERRIDES con 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 \
    --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 Environment > 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 es posible que no comiencen con un dígito.

  • El bloque airflow_config_overrides en el bloque software_config especifica 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)

A fin de definir los períodos de mantenimiento del entorno, sigue estos pasos:

Console

En la página Crear entorno, sigue estos pasos:

  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 Establecer un tiempo personalizado para los períodos de mantenimiento.

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

  4. Configura el Tiempo de inicio, los Días y los Duración, de modo que el tiempo combinado para el programa especificado sea de al menos 12 horas en un 7. día progresivo. 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 parámetros de 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 beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --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 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 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 con una RRULE RFC 5545 para la recurrencia de los períodos de mantenimiento Cloud Composer admite los siguientes 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 seleccionados de la semana.

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

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

API

Cuando crees un entorno, en el recurso Environment > EnvironmentConfig, especifica los parámetros de 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 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 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 con una RRULE RFC 5545 para la recurrencia de períodos de mantenimiento. Cloud Composer admite los siguientes 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 seleccionados de la semana.

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

Ejemplo:


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

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

Terraform

No es posible especificar períodos de mantenimiento con Terraform. Puedes crear un entorno mediante Terraform y, luego, especificar los períodos de mantenimiento mediante Google Cloud Console o gcloud.

Paso 9. 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, sigue estos pasos:

  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 pares clave-valor para las etiquetas de 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 \
    --labels LABELS

Reemplaza lo siguiente:

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

Ejemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --labels owner=engineering-team,env=production

API

Cuando crees 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 con una clave de la etiqueta de entorno.
  • LABEL_VALUE con un valor de la etiqueta de 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 crees 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 con una clave de la etiqueta de entorno.
  • LABEL_VALUE con un valor de la etiqueta de entorno.

Ejemplo:

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

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

}

Paso 10: 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 descritas en Usa claves de encriptación administradas por el cliente.

Paso 11. Configura otros parámetros (opcional)

Entre otros parámetros, se incluyen los siguientes:

  • Zona para los nodos de tu 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.

    De forma 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 estarán disponibles para todas las VM del nodo. Si está vacío, se establece de manera predeterminada en 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.

  • Etiquetas de VM de nodo

    La lista de etiquetas aplicadas a todas las VM del nodo. Las etiquetas se usan a fin de identificar fuentes o objetivos válidos para firewalls de red. Cada etiqueta dentro de la lista debe cumplir con RFC 1035.

  • Versión de Python

    Si tu entorno usa Airflow 1.10.* y versiones anteriores de Airlfow, 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 compatibles de Python.

Console

En la página Crear entorno, sigue estos pasos:

  1. En la sección Configuración del nodo, sigue estos pasos:

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

      No puedes cambiar de zona más adelante.

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

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

    • En el campo Etiquetas, especifica las etiquetas de la instancia para las VM de nodo.

      No puedes cambiar las etiquetas más adelante.

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

      No puedes 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 del entorno.

  • --oauth-scopes especifica una lista de alcances de OAuth separados por comas.

  • --tags especifica una lista separada por comas de etiquetas de instancia aplicadas a todas las VM de nodo.

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

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --zone ZONE \
    --oauth-scopes OAUTH_SCOPES \
    --tags TAGS \
    --python-version PYTHON_VERSION

Reemplaza lo siguiente:

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

Ejemplo:

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

API

Cuando crees un entorno, en el recurso Environment > EnvironmentConfig, especifica los diversos parámetros de tu entorno.

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

Reemplaza lo siguiente:

  • ZONE por el nombre de la zona de Compute Engine
  • OAUTH_SCOPE con un alcance de OAuth Para especificar permisos adicionales, agrega el alcance https://www.googleapis.com/auth/cloud-platform, seguido de los elementos de alcance adicionales.
  • TAG con una etiqueta de instancia.
  • 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"
      ],
      "tags": [
        "group1",
        "production"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "3"
    }
  }
}

Terraform

Cuando creas un entorno, los siguientes campos controlan parámetros diversos de tu entorno:

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

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

  • El campo tags en el bloque node_config especifica una lista separada por comas de etiquetas de instancia aplicadas a todas las VM del nodo.

  • El campo python_version del 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]"
      tags = "TAGS"
    }

    software_config {
      python_version = "PYTHON_VERSION"
    }
  }
}

Reemplaza lo siguiente:

  • ZONE por el nombre de la zona de Compute Engine
  • OAUTH_SCOPES con una lista de permisos de OAuth separados por comas.
  • TAGS con una lista separada por comas de etiquetas de instancia.
  • 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]"
      tags = "[group1,production]"
    }
    software_config {
      python_version = "3"
    }
  }
}

Paso 12: Aplica el uso de la API Beta (opcional)

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

Console

En la página Crear entorno, sigue estos pasos:

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

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

gcloud

Crea tu entorno mediante el comando gcloud beta composer.

API

Crea tu entorno mediante el extremo del servicio v1beta1.

Terraform

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

¿Qué sigue?