Usar el bucket de un entorno personalizado

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Puedes especificar un segmento de Cloud Storage personalizado como segmento de un entorno al crear un entorno. Tu entorno usa este segmento de la misma forma que el segmento del entorno predeterminado, y el segmento del entorno predeterminado no se crea.

Con un contenedor personalizado, puedes hacer lo siguiente:

  • Usa una configuración de contenedor que cumpla tus requisitos.
  • Usa un segmento que exista continuamente para realizar pruebas o desarrollos periódicos.
  • Reutiliza un bucket de un entorno anterior y conserva las integraciones de CI/CD y de datos.
  • Eliminar y volver a crear un entorno sin necesidad de transferir datos entre contenedores.
  • Rellena el segmento personalizado con los datos necesarios, como los archivos DAG, y crea un entorno.

Antes de empezar

  • Esta función está disponible a partir de la versión 2.5.0 de Cloud Composer. Las versiones anteriores de Cloud Composer 2 no admiten esta función.
  • El segmento personalizado debe estar ubicado en la misma región que el entorno. No se admiten los contenedores multirregionales ni birregionales.
  • El segmento personalizado y el entorno deben estar en el mismo proyecto.
  • El segmento personalizado debe tener la clase de almacenamiento estándar.
  • El segmento personalizado no debe tener políticas de conservación ni bloqueos de políticas de conservación.
  • No se puede usar el mismo segmento personalizado con varios entornos al mismo tiempo. Cloud Composer genera un error si otro entorno ya utiliza el bucket especificado. Puedes eliminar un entorno y, después, usar el mismo segmento para otro entorno.

  • Si has habilitado la opción de guardar los registros en el bucket del entorno, cuando elimines un entorno y utilices el mismo bucket para otro entorno, este último no mostrará los registros de tareas de Airflow del entorno anterior en la interfaz de usuario de Airflow. Los registros permanecen en el bucket, pero el nuevo entorno no los asocia a ninguna ejecución de DAG.

  • Cloud Composer no añade ningún permiso de IAM que falte al segmento de Cloud Storage cuando se usa para crear un entorno. Asegúrate de que la cuenta de servicio del entorno tenga permisos del rol de trabajador de Composer en el segmento.

Crear un entorno con un segmento personalizado

Consola

Para especificar un segmento de Cloud Storage personalizado al crear un entorno, sigue estos pasos:

  1. En la página Crear entorno, en la sección Configuración avanzada, haz clic en Mostrar configuración avanzada.
  2. Selecciona Segmento personalizado.
  3. En el campo Nombre del contenedor, especifica o selecciona un contenedor.

gcloud

Cuando creas un entorno, el argumento --storage-bucket especifica el cubo personalizado del entorno.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --storage-bucket CUSTOM_STORAGE_BUCKET

Haz los cambios siguientes:

  • ENVIRONMENT_NAME: el nombre de tu entorno.
  • LOCATION: la región en la que se encuentra el entorno.
  • CUSTOM_STORAGE_BUCKET: el nombre de un segmento de Cloud Storage. También puedes especificar el URI del segmento (con el prefijo gs://).

Ejemplo:

gcloud composer environments create example-environment \
    --location us-cental1 \
    --storage-bucket us-central1-example-bucket

API

Cuando crees un entorno, en el recurso Environment > StorageConfig, especifica un segmento personalizado para tu entorno.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "storageConfig": {
    "bucket": "CUSTOM_STORAGE_BUCKET"
  }
}

Haz los cambios siguientes:

  • PROJECT_ID: el ID de proyecto.
  • LOCATION: la región en la que se encuentra el entorno.
  • ENVIRONMENT_NAME: el nombre de tu entorno.
  • CUSTOM_STORAGE_BUCKET: el nombre de un segmento de Cloud Storage (sin el prefijo gs://).

Ejemplo:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "storageConfig": {
    "bucket": "us-central1-example-bucket"
  }
}

Terraform

Cuando creas un entorno, el campo bucket del bloque storage_config especifica el segmento personalizado del entorno.

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

  storage_config {

    bucket = CUSTOM_STORAGE_BUCKET

  }
}

Haz los cambios siguientes:

  • ENVIRONMENT_NAME: el nombre de tu entorno.
  • LOCATION: la región en la que se encuentra el entorno.
  • CUSTOM_STORAGE_BUCKET: el nombre de un segmento de Cloud Storage. También puedes especificar el URI del segmento (con el prefijo gs://).

Ejemplo:

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

  storage_config {

    bucket = "gs://us-central1-example-bucket"

  }
}

Siguientes pasos