Use o contentor de um ambiente personalizado

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Pode especificar um contentor do Google Cloud Storage personalizado como o contentor de um ambiente quando cria um ambiente. O seu ambiente usa este contentor da mesma forma que o contentor do ambiente predefinido, e o contentor do ambiente predefinido não é criado.

Com um contentor personalizado, pode:

  • Use uma configuração de contentor em conformidade com os seus requisitos.
  • Use um grupo existente continuamente para fins de desenvolvimento ou testes periódicos.
  • Reutilize um contentor existente de um ambiente anterior e mantenha as integrações de CI/CD e de dados.
  • Eliminar e recriar um ambiente sem necessidade de transferir dados entre contentores.
  • Pré-preencha o contentor personalizado com os dados necessários, como os ficheiros DAG, e, em seguida, crie um ambiente.

Antes de começar

  • Esta funcionalidade é suportada a partir da versão 2.5.0 do Cloud Composer. As versões anteriores do Cloud Composer 2 não suportam esta funcionalidade.
  • O contentor personalizado tem de estar localizado na mesma região que o ambiente. Os contentores multirregionais e de duas regiões não são suportados.
  • O contentor personalizado e o ambiente têm de estar no mesmo projeto.
  • O contentor personalizado tem de ter a classe de armazenamento padrão.
  • O contentor personalizado não pode ter políticas de retenção nem bloqueios de políticas de retenção aplicados.
  • Não é possível usar o mesmo conjunto personalizado com vários ambientes ao mesmo tempo. O Cloud Composer gera um erro se o bucket especificado já estiver a ser usado por outro ambiente. É possível eliminar um ambiente e, em seguida, usar o mesmo contentor para outro ambiente.

  • Se ativou a opção para guardar registos no contentor do ambiente, se eliminar um ambiente e, em seguida, usar o mesmo contentor para outro ambiente, o novo ambiente não apresenta registos de tarefas do Airflow do ambiente anterior na IU do Airflow. Os registos permanecem no contentor, mas o novo ambiente não os associa a nenhuma execução de DAG.

  • O Cloud Composer não adiciona autorizações do IAM em falta ao contentor do Cloud Storage quando é usado para criar um ambiente. Certifique-se de que a conta de serviço do ambiente tem autorizações da função Composer Worker no contentor.

Crie um ambiente com um contentor personalizado

Consola

Para especificar um contentor do Cloud Storage personalizado quando cria um ambiente:

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

gcloud

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

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

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde o ambiente está localizado.
  • CUSTOM_STORAGE_BUCKET: o nome de um contentor do Cloud Storage. Também pode especificar o URI do contentor (com o prefixo gs://).

Exemplo:

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

API

Quando cria um ambiente, no recurso Environment > StorageConfig, especifique um contentor personalizado para o seu ambiente.

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

Substitua o seguinte:

  • PROJECT_ID: o ID do projeto.
  • LOCATION: a região onde o ambiente está localizado.
  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • CUSTOM_STORAGE_BUCKET: o nome de um contentor 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 cria um ambiente, o campo bucket no bloco storage_config especifica o contentor personalizado do ambiente.

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

  storage_config {

    bucket = CUSTOM_STORAGE_BUCKET

  }
}

Substitua o seguinte:

  • ENVIRONMENT_NAME: o nome do seu ambiente.
  • LOCATION: a região onde o ambiente está localizado.
  • CUSTOM_STORAGE_BUCKET: o nome de um contentor do Cloud Storage. Também pode especificar o URI do contentor (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"

  }
}

O que se segue?