Usar o bucket de um ambiente personalizado

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

No Cloud Composer 2, especifique um bucket personalizado do Cloud Storage como bucket do ambiente ao criá-lo. Seu ambiente usa este bucket da mesma maneira que o bucket padrão do ambiente, e o bucket do ambiente padrão não será criado.

Com um bucket personalizado, é possível:

  • Use uma configuração de bucket que atenda aos seus requisitos.
  • Use um bucket atual para fins de desenvolvimento ou teste periódicos.
  • Reutilize um bucket de um ambiente anterior e mantenha as integrações de CI/CD e dados.
  • Exclua e recrie um ambiente sem a necessidade de transferir dados entre buckets.
  • Pré-preencher o bucket personalizado com os dados necessários, como arquivos DAG e criar um ambiente.

Antes de começar

  • Esse recurso tem suporte a partir da versão 2.5.0 do Cloud Composer. As versões anteriores do Cloud Composer 2 não oferecem suporte a esse recurso.
  • O bucket personalizado precisa estar localizado na mesma região que o ambiente. Não há suporte a buckets multirregionais e birregionais.
  • O bucket personalizado e o ambiente precisam estar no mesmo projeto.
  • O bucket personalizado precisa ter a classe de armazenamento padrão.
  • O bucket personalizado não pode ter políticas de retenção ou bloqueios da política de retenção aplicados a ela.
  • Não é possível usar o mesmo bucket personalizado com vários ambientes ao mesmo tempo. O Cloud Composer gera um erro quando se o bucket especificado já estiver sendo usado por outro ambiente. É possível excluir um ambiente e usar o mesmo bucket em outro.
  • Se você excluir um ambiente e usar o mesmo bucket para outro, o novo ambiente não vai mostrar os registros de tarefas do Airflow do ambiente anterior na interface do Airflow. Os registros permanecem no bucket, o novo ambiente não os associa a nenhuma execução do DAG.

Criar um ambiente com um bucket personalizado

Console

Para especificar um bucket personalizado do Cloud Storage ao criar um ambiente:

  1. Na página Criar ambiente, em Configuração avançada clique em Mostrar configuração avançada.
  2. Selecione Bucket personalizado.
  3. No campo Nome do bucket, especifique ou selecione um bucket.

gcloud

Quando você cria um ambiente, o argumento --storage-bucket especifica o bucket personalizado do ambiente.

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

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • CUSTOM_STORAGE_BUCKET: o nome de um bucket do Cloud Storage. Você também pode especificar o URI do bucket (com o prefixo gs://).

Exemplo:

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

API

Ao criar um ambiente, no recurso Ambiente > StorageConfig, especifique um bucket personalizado para seu ambiente.

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

Substitua:

  • PROJECT_ID: o ID do projeto.
  • LOCATION: a região em que o ambiente está localizado.
  • ENVIRONMENT_NAME: o nome do ambiente;
  • CUSTOM_STORAGE_BUCKET: o nome de um bucket do Cloud Storage (sem o prefixo gs://).

Exemplo:

// 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

Quando você cria um ambiente, o campo bucket na O bloco storage_config especifica o bucket personalizado do ambiente.

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

  storage_config {

    bucket = CUSTOM_STORAGE_BUCKET

  }
}

Substitua:

  • ENVIRONMENT_NAME: o nome do ambiente;
  • LOCATION: a região em que o ambiente está localizado.
  • CUSTOM_STORAGE_BUCKET: o nome de um bucket do Cloud Storage. Você também pode especificar o URI do bucket (com o prefixo gs://).

Exemplo:

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

  storage_config {

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

  }
}

A seguir