Usa el bucket de un entorno personalizado

Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (1ª gen. heredada)

Puedes especificar un bucket de Cloud Storage personalizado como bucket de un entorno cuando creas un entorno. Tu entorno usa este bucket de la misma manera que el bucket predeterminado del entorno, y no se crea el bucket predeterminado del entorno.

Con un bucket personalizado, puedes hacer lo siguiente:

  • Usar una configuración de bucket que cumpla con tus requisitos
  • Usar un bucket existente de forma continua para fines de desarrollo o prueba periódicos
  • Volver a usar un bucket existente de un entorno anterior y mantener las integraciones de CI/CD y de datos
  • Borrar y volver a crear un entorno sin necesidad de transferir datos entre buckets
  • Propagar previamente el bucket personalizado con los datos necesarios, como los archivos DAG, y, luego, crear un entorno

Antes de comenzar

  • Esta función es compatible a partir de la versión 2.5.0 de Managed Airflow. Las versiones anteriores de Managed Airflow (2ª gen.) no admiten esta función.
  • El bucket personalizado debe estar ubicado en la misma región que el entorno. No se admiten buckets multirregionales ni de dos regiones.
  • El bucket personalizado y el entorno deben estar en el mismo proyecto.
  • El bucket personalizado debe tener la clase de almacenamiento Standard Storage.
  • El bucket personalizado no debe tener políticas de retención ni bloqueos de políticas de retención aplicados.
  • El bucket personalizado no debe tener habilitado el espacio de nombres jerárquico.
  • No es posible usar el mismo bucket personalizado con varios entornos al mismo tiempo. Managed Airflow genera un error si otro entorno ya usa el bucket especificado. Es posible borrar un entorno y, luego, usar el mismo bucket para otro entorno.

  • Si habilitaste el guardado de registros en el bucket del entorno, cuando borres un entorno y, luego, uses el mismo bucket para otro entorno, el entorno nuevo no mostrará los registros de tareas de Airflow del entorno anterior en la IU de Airflow. Los registros permanecen en el bucket, pero el entorno nuevo no los asocia con ninguna ejecución de DAG.

  • Managed Airflow no agrega ningún permiso de IAM faltante al bucket 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 bucket.

Crea un entorno con un bucket personalizado

Console

Para especificar un bucket de Cloud Storage personalizado cuando creas un entorno, haz lo siguiente:

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

gcloud

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

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

Reemplaza lo siguiente:

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

Ejemplo:

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

API

Cuando creas un entorno, en el recurso Entorno > StorageConfig, especifica un bucket personalizado para tu entorno.

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

Reemplaza lo siguiente:

  • PROJECT_ID: el ID del proyecto.
  • LOCATION: Es la región en la que se encuentra el entorno.
  • ENVIRONMENT_NAME: Es el nombre de tu entorno.
  • CUSTOM_STORAGE_BUCKET: Es el nombre de un bucket 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 en el bloque storage_config especifica el bucket personalizado del entorno.

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

  storage_config {

    bucket = CUSTOM_STORAGE_BUCKET

  }
}

Reemplaza lo siguiente:

  • ENVIRONMENT_NAME: Es el nombre de tu entorno.
  • LOCATION: Es la región en la que se encuentra el entorno.
  • CUSTOM_STORAGE_BUCKET: Es el nombre de un bucket de Cloud Storage. También puedes especificar el URI del bucket (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"

  }
}

¿Qué sigue?