Airflow gerenciado (Geração 3) | Airflow gerenciado (Geração 2) | Airflow gerenciado (Geração 1 legada)
É possível especificar um bucket personalizado do Cloud Storage como o bucket de um ambiente ao criar um ambiente. O ambiente usa esse bucket da mesma forma que o bucket padrão do ambiente, e o bucket padrão do ambiente não é criado.
Com um bucket personalizado, você pode:
- Usar uma configuração de bucket que esteja em conformidade com seus requisitos.
- Usar um bucket existente continuamente para fins de desenvolvimento ou teste periódicos.
- Reutilizar um bucket de um ambiente anterior e manter as integrações de CI/CD e de dados.
- Excluir e recriar um ambiente sem precisar transferir dados entre buckets.
- Preencher o bucket personalizado com os dados necessários, como arquivos DAG, e criar um ambiente.
Antes de começar
- O bucket personalizado precisa estar na mesma região que o ambiente. Buckets multirregionais e de região dupla não são aceitos.
- 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 de política de retenção aplicados a ele.
- O bucket personalizado não pode ter o namespace hierárquico ativado.
Não é possível usar o mesmo bucket personalizado com vários ambientes ao mesmo tempo. O Airflow gerenciado gera um erro se o bucket especificado já estiver sendo usado por outro ambiente. É possível excluir um ambiente e usar o mesmo bucket para outro ambiente.
O Airflow gerenciado não adiciona permissões do IAM ausentes ao bucket do Cloud Storage quando ele é usado para criar um ambiente. Verifique se a conta de serviço do ambiente tem permissões do papel de worker do Composer no bucket.
Criar um ambiente com um bucket personalizado
Console
Para especificar um bucket do Cloud Storage personalizado ao criar um ambiente:
- Na página Criar ambiente, na seção Configuração avançada, clique em Mostrar configuração avançada.
- Selecione Bucket personalizado.
- No campo Nome do bucket, especifique ou selecione um bucket.
gcloud
Ao criar 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 prefixogs://).
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 o 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 prefixogs://).
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
Ao criar um ambiente, o campo bucket no bloco storage_config especifica o bucket personalizado do ambiente.
resource "google_composer_environment" "example" {
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 prefixogs://).
Exemplo:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
storage_config {
bucket = "gs://us-central1-example-bucket"
}
}