Usar o bucket de um ambiente personalizado

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

No Cloud Composer 2, você pode especificar um bucket personalizado do Cloud Storage como o bucket de um ambiente ao criá-lo. Seu ambiente usa esse bucket da mesma forma que o bucket do ambiente padrão, e o bucket do ambiente padrão não é criado.

Com um bucket personalizado, é possível:

  • Use uma configuração de bucket que esteja em conformidade com seus requisitos.
  • Use um bucket que já existe para fins de desenvolvimento ou teste periódicos.
  • Reutilizar um bucket de um ambiente anterior e manter as integrações de dados e CI/CD.
  • Excluir e recriar um ambiente sem a necessidade de transferir dados entre buckets.
  • Preencha automaticamente o bucket personalizado com os dados necessários, como arquivos DAG, e crie um ambiente.

Antes de começar

  • Esse recurso é compatível a partir da versão 2.5.0 do Cloud Composer. As versões anteriores do Cloud Composer 2 não são compatíveis com esse recurso.
  • O bucket personalizado precisa estar localizado na mesma região que o ambiente. Não há suporte para buckets multirregionais e birregionais.
  • O bucket personalizado e o ambiente precisam estar no mesmo projeto.
  • O bucket personalizado precisa ter a classe Standard Storage.
  • O bucket personalizado não pode ter políticas ou bloqueios de políticas de retenção aplicados a ele.
  • Não é possível usar o mesmo bucket personalizado com vários ambientes ao mesmo tempo. O Cloud Composer gera um erro quando o bucket especificado já é usado por outro ambiente. É possível excluir um ambiente e usar o mesmo bucket para outro.
  • Se você excluir um ambiente e usar o mesmo bucket para outro, o novo ambiente não exibirá os registros de tarefas do ambiente anterior na interface do Airflow. Os registros permanecem no bucket, mas 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, na seção 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. Também é possível 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 ele.

{
  "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 no 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. Também é possível 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