Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Nesta página, explicamos como criar um ambiente do Cloud Composer.
- Para mais informações sobre ambientes, consulte Arquitetura do ambiente.
- Para mais informações sobre como criar um ambiente com o Terraform, consulte Criar ambientes (Terraform).
Antes de começar
Ative a API Cloud Composer. Para acessar a lista completa serviços usados pelo Cloud Composer, consulte Serviços exigidos pelo Cloud Composer.
O tempo aproximado para criar um ambiente é de 25 minutos.
Durante a criação do ambiente, você especifica uma conta de serviço. O Cloud Composer vincula essa conta a uma conta de serviço do Kubernetes do cluster do seu ambiente.
Por padrão, os ambientes do Cloud Composer usam a conta de serviço padrão do Compute Engine gerenciada pelo Google. Recomendamos que você crie um serviço gerenciado pelo usuário que tem um papel específico para o Cloud Composer e o utiliza para seus ambientes.
Se você criar um ambiente com o Terraform, a conta de serviço usada pelo Terraform precisará ter um papel com a permissão
composer.environments.create
ativada.Para mais informações sobre a conta de serviço do Terraform, consulte Referência de configuração do provedor do Google.
Para mais informações sobre como usar o Terraform para criar um ambiente do Cloud Composer, consulte a documentação do Terraform.
Para mais informações sobre parâmetros adicionais, consulte Referência de argumentos do Terraform.
VPC SC: para implantar ambientes do Cloud Composer em um perímetro de segurança, consulte Como configurar o VPC SC. Quando usado com o Cloud Composer, o VPC Service Controls tem várias limitações conhecidas.
Etapa 1. Configuração básica
Esta etapa cria um ambiente do Cloud Composer com padrões no local especificado.
Console
No console do Google Cloud, acesse a página Criar ambiente.
No campo Nome, digite um nome para o ambiente.
O nome precisa começar com uma letra minúscula seguida por até 62 letras minúsculas, números ou hifens. Ele não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente. Você precisa fornecer um nome que também seja válido como um nome de bucket do Cloud Storage. Para ver uma lista de restrições, consulte Diretrizes de nomenclatura de bucket.
Na lista suspensa Local, escolha um local para o ambiente.
O local é a região em que o ambiente está localizado.
Na lista suspensa Versão da imagem, selecione uma imagem do Cloud Composer com a versão necessária do Airflow.
gcloud
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION
Substitua:
ENVIRONMENT_NAME
pelo nome do ambiente;O nome precisa começar com uma letra minúscula seguida por até 62 letras minúsculas, números ou hifens. Ele não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente. Você precisa fornecer um nome que também seja válido como um nome de bucket do Cloud Storage. Para ver uma lista de restrições, consulte Diretrizes de nomenclatura de bucket.
LOCATION
pela região do ambiente.O local é a região em que o ambiente está localizado.
IMAGE_VERSION
pelo nome de uma imagem do Cloud Composer.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8
API
Crie uma solicitação de API environments.create
. Especifique a
configuração no recurso Environment
.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "IMAGE_VERSION"
}
}
}
Substitua:
PROJECT_ID
pelo ID do projeto;LOCATION
pela região do ambiente.O local é a região em que o ambiente está localizado.
ENVIRONMENT_NAME
pelo nome do ambiente.O nome precisa começar com uma letra minúscula seguida por até 62 letras minúsculas, números ou hifens. Ele não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente. Você precisa fornecer um nome que também seja válido como um nome de bucket do Cloud Storage. Para ver uma lista de restrições, consulte Diretrizes de nomenclatura de bucket.
IMAGE_VERSION
pelo nome de uma imagem do Cloud Composer.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-3-airflow-2.7.3-build.8"
}
}
}
Terraform
Para criar um ambiente com parâmetros padrão como um local especificado,
adicione o seguinte bloco de recursos à configuração do Terraform e execute
terraform apply
.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
image_version = "IMAGE_VERSION"
}
}
}
Substitua:
ENVIRONMENT_NAME
pelo nome do ambiente;O nome precisa começar com uma letra minúscula seguida por até 62 letras minúsculas, números ou hifens. Ele não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente. Você precisa fornecer um nome que também seja válido como um nome de bucket do Cloud Storage. Para ver uma lista de restrições, consulte Diretrizes de nomenclatura de bucket.
LOCATION
pela região do ambiente.O local é a região em que o ambiente está localizado.
IMAGE_VERSION
pelo nome de uma imagem do Cloud Composer.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-3-airflow-2.7.3-build.8"
}
}
}
Etapa 2: (Opcional) Selecionar uma conta de serviço para o ambiente
O Cloud Composer vincula essa conta de serviço ao serviço do Kubernetes do seu ambiente. Os nós no cluster do ambiente são executados conta de serviço do Kubernetes e use as vinculações para acessar recursos na sua projeto do Google Cloud, como arquivos de definição do DAG nos bucket do seu ambiente de execução.
Por padrão, os ambientes do Cloud Composer usam a conta de serviço padrão do Compute Engine. Recomendamos configurar uma conta de serviço gerenciada pelo usuário para ambientes do Cloud Composer.
Não é possível alterar a conta de serviço do ambiente posteriormente.
Console
Na página Criar ambiente, na lista suspensa Conta de serviço, selecione uma conta de serviço para seu ambiente.
gcloud
Quando você cria um ambiente, o --service-account
especifica a
conta de serviço do ambiente.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--service-account "SERVICE_ACCOUNT"
Substitua:
SERVICE_ACCOUNT
pela conta de serviço do seu ambiente.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--service-account "example-account@example-project.iam.gserviceaccount.com"
API
Quando você cria um ambiente, na seção Environment > EnvironmentConfig, especificar uma conta de serviço para o ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
Substitua:
SERVICE_ACCOUNT
pela conta de serviço do seu ambiente.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"serviceAccount": "example-account@example-project.iam.gserviceaccount.com"
}
}
}
Terraform
Ao criar um ambiente, use o campo service_account
no
bloco node_config
.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substitua:
SERVICE_ACCOUNT
pela conta de serviço do seu ambiente.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
service_account = "example-account@example-project.iam.gserviceaccount.com"
}
}
}
Etapa 3. (Opcional) Configurar a escala do ambiente e os parâmetros de desempenho
Para especificar a configuração de escalonamento e desempenho do ambiente, selecione o tamanho do ambiente e a configuração de cargas de trabalho.
É possível alterar todos os parâmetros de desempenho e escala depois de criar um ambiente.
Os seguintes parâmetros controlam a escala e o desempenho:
Tamanho do ambiente. Controla os parâmetros de desempenho do cluster A infraestrutura do Cloud Composer que inclui o Airflow no seu banco de dados. Considere selecionar um tamanho de ambiente maior se quiser executar um um grande número de DAGs e tarefas.
Configuração das cargas de trabalho. Controla a escala e o desempenho dos componentes de ambiente executados em um cluster do GKE: Airflow programadores, servidor da Web do Airflow e workers do Airflow.
Programador do Airflow. Analisa arquivos de definição DAG, programa execuções de DAG com base no intervalo de programação e coloca em fila as tarefas a serem executadas pelos workers do Airflow.
Seu ambiente pode executar mais de um programador do Airflow ao mesmo tempo. Use vários programadores para distribuir a carga entre várias instâncias do programador e tenha melhor desempenho e confiabilidade.
Aumentar o número de programadores nem sempre melhora o desempenho do Airflow. Por exemplo, ter apenas um programador pode proporcionar um desempenho melhor do que com dois. Isso pode acontecer quando o programador extra não é utilizado e, portanto, consome recursos do seu ambiente sem contribuir com o desempenho geral. O desempenho real do programador depende do número de workers do Airflow, do número de DAGs e tarefas executados no ambiente e da configuração do Airflow e do ambiente.
Recomendamos começar com dois programadores e depois monitorar o desempenho do ambiente. Se você alterar o número de programadores, será possível escalonar o ambiente novamente para o número original de programadores.
Para mais informações sobre como configurar vários programadores, consulte a documentação do Airflow.
Gatilho do Airflow. Monitora de maneira assíncrona todas as tarefas adiadas na sua de nuvem. Se você tiver pelo menos uma instância de engatilhador na sua (ou pelo menos dois em ambientes altamente resilientes), é possível usar operadores adiáveis nos DAGs.
Processador de DAG do Airflow. Processa arquivos DAG e os transforma em do DAG. No Cloud Composer 3, essa parte do programador é executada como um componente de ambiente separado.
Servidor da Web do Airflow. Executa a interface da Web do Airflow em que você pode monitorar, gerenciar e visualizar os DAGs.
Workers do Airflow. Executar tarefas programadas pelos programadores do Airflow. Os números mínimo e máximo de workers no ambiente mudam dinamicamente dependendo do número de tarefas na fila.
Console
É possível selecionar uma predefinição para o ambiente. Quando você seleciona uma predefinição, os parâmetros de escala e desempenho dela são selecionados automaticamente. Você também tem a opção de selecionar uma predefinição personalizada e especificar todos os parâmetros de escala e desempenho para seu ambiente.
Para selecionar a configuração de escala e desempenho do ambiente, na página Criar ambiente:
Para usar valores predefinidos, na seção Recursos do ambiente, clique em Pequeno, Médio ou Grande.
Para especificar valores personalizados para os parâmetros de escala e desempenho, siga estas etapas:
Na seção Recursos do ambiente, clique em Personalizado.
Na seção Programador, defina o número de programadores que você quer e a alocação de recursos para CPU, memória e armazenamento.
Na seção Acionador, use o campo Número de acionadores. para inserir o número de acionadores no seu ambiente. Você pode definir esse número como 0 se você não quiser usar operadores adiáveis nos DAGs.
Se você definir pelo menos um acionador para seu ambiente, use o os campos CPU e Memory para configurar a alocação de recursos; para os acionadores.
Na seção Processador de DAG, especifique o número de processadores de DAG. no seu ambiente e na quantidade de CPUs, memória e armazenamento cada processador de DAG.
Na seção Servidor da Web, especifique a quantidade de CPUs, memória e para o servidor da Web.
Na seção Worker, especifique:
- Os números mínimo e máximo de workers para os limites de escalonamento automático em em seu ambiente.
- A alocação de CPU, memória e armazenamento para os workers
Na seção Infraestrutura principal, selecione o tamanho do ambiente na lista suspensa Tamanho do ambiente.
gcloud
Quando você cria um ambiente, os argumentos a seguir controlam as parâmetros de escala e desempenho do seu ambiente.
--environment-size
especifica o tamanho do ambiente.--scheduler-count
especifica o número de programadores.--scheduler-cpu
especifica o número de CPUs para um programador do Airflow.--scheduler-memory
especifica a quantidade de memória para um programador do Airflow.--scheduler-storage
especifica a quantidade de espaço em disco para um programador do Airflow.--triggerer-count
especifica o número de gatilhos do Airflow na sua de nuvem. O valor padrão dessa sinalização é0
. Você vai precisar de acionadores se quiser usar operadores adiáveis nos DAGs.- Para ambientes de resiliência padrão, use um valor entre
0
e10
. - Para ambientes altamente resilientes, use
0
ou um valor entre2
e10
.
- Para ambientes de resiliência padrão, use um valor entre
--triggerer-cpu
especifica o número de CPUs de uma instância do em unidades de vCPU. Valores permitidos:0.5
,0.75
,1
. O valor padrão é0.5
.--triggerer-memory
especifica a quantidade de memória para um Acionadores do Airflow, em GB. O valor padrão é0.5
.A memória mínima necessária é igual ao número de CPUs alocadas para os acionadores. O valor máximo permitido é igual ao número de CPUs do acionador multiplicadas por 6,5.
Por exemplo, se você definir a sinalização
--triggerer-cpu
como1
, o o valor mínimo para--triggerer-memory
é1
, e o o valor máximo é6.5
.--dag-processor-cpu
especifica o número de CPUs do processador de DAG.--dag-processor-memory
especifica a quantidade de memória para o DAG. processamento.--dag-processor-storage
especifica a quantidade de espaço em disco para o DAG. processamento.--web-server-cpu
especifica o número de CPUs para o servidor da Web do Airflow.--web-server-memory
especifica a quantidade de memória do servidor da Web do Airflow.--web-server-storage
especifica a quantidade de espaço em disco para o servidor da Web do Airflow.--worker-cpu
especifica o número de CPUs para um worker do Airflow.--worker-memory
especifica a quantidade de memória para um worker do Airflow.--worker-storage
especifica a quantidade de espaço em disco para um worker do Airflow.--min-workers
especifica o número mínimo de workers do Airflow. O cluster do ambiente é executado com pelo menos esse número de workers.--max-workers
especifica o número máximo de workers do Airflow. O cluster do ambiente é executado com no máximo esse número de workers.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--environment-size ENVIRONMENT_SIZE \
--scheduler-count SCHEDULER_COUNT \
--scheduler-cpu SCHEDULER_CPU \
--scheduler-memory SCHEDULER_MEMORY \
--scheduler-storage SCHEDULER_STORAGE \
--triggerer-count TRIGGERER_COUNT \
--triggerer-cpu TRIGGERER_CPU \
--triggerer-memory TRIGGERER_MEMORY \
--dag-processor-cpu DAG_PROCESSOR_CPU \
--dag-processor-memory DAG_PROCESSOR_MEMORY \
--dag-processor-storage DAG_PROCESSOR_STORAGE \
--web-server-cpu WEB_SERVER_CPU \
--web-server-memory WEB_SERVER_MEMORY \
--web-server-storage WEB_SERVER_STORAGE \
--worker-cpu WORKER_CPU \
--worker-memory WORKER_MEMORY \
--worker-storage WORKER_STORAGE \
--min-workers WORKERS_MIN \
--max-workers WORKERS_MAX
Substitua:
ENVIRONMENT_SIZE
porsmall
,medium
oularge
.SCHEDULER_COUNT
pelo número de programadores.SCHEDULER_CPU
pelo número de CPUs de um programador, em unidades de vCPU.SCHEDULER_MEMORY
pela quantidade de memória de um programador.SCHEDULER_STORAGE
pelo tamanho do disco de um programador.TRIGGERER_COUNT
pelo número de acionadores.TRIGGERER_CPU
pelo número de CPUs de um engatilhador, em unidades de vCPU.TRIGGERER_MEMORY
pela quantidade de memória para um engatilhador, em GB.DAG_PROCESSOR_CPU
pelo número de CPUs do processador de DAG.DAG_PROCESSOR_MEMORY
pela quantidade de memória para o DAG processamento.DAG_PROCESSOR_STORAGE
pela quantidade de espaço em disco para o DAG processamento.WEB_SERVER_CPU
pelo número de CPUs do servidor da Web, em unidades de vCPU.WEB_SERVER_MEMORY
pela quantidade de memória do servidor da Web.WEB_SERVER_STORAGE
pela quantidade de memória do servidor da Web.WORKER_CPU
pelo número de CPUs de um worker em unidades de vCPU.WORKER_MEMORY
pela quantidade de memória de um worker.WORKER_STORAGE
pelo tamanho do disco de um worker.WORKERS_MIN
pelo número mínimo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que um número menor de workers possa processar a carga.WORKERS_MAX
pelo número máximo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que seja necessário um número maior de workers para processar a carga.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--environment-size small \
--scheduler-count 1 \
--scheduler-cpu 0.5 \
--scheduler-memory 2.5GB \
--scheduler-storage 2GB \
--triggerer-count 1 \
--triggerer-cpu 0.5 \
--triggerer-memory 0.5GB \
--dag-processor-cpu 0.5 \
--dag-processor-memory 2GB \
--dag-processor-storage 1GB \
--web-server-cpu 1 \
--web-server-memory 2.5GB \
--web-server-storage 2GB \
--worker-cpu 1 \
--worker-memory 2GB \
--worker-storage 2GB \
--min-workers 2 \
--max-workers 4
API
Ao criar um ambiente, em Ambiente > EnvironmentConfig > WorkloadsConfig, especifique o ambiente parâmetros de escala e desempenho.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": SCHEDULER_CPU,
"memoryGb": SCHEDULER_MEMORY,
"storageGb": SCHEDULER_STORAGE,
"count": SCHEDULER_COUNT
},
"triggerer": {
"count": TRIGGERER_COUNT,
"cpu": TRIGGERER_CPU,
"memoryGb": TRIGGERER_MEMORY
},
"dagProcessor": {
"count": 1,
"cpu": DAG_PROCESSOR_CPU,
"memoryGb": DAG_PROCESSOR_MEMORY,
"storageGb": DAG_PROCESSOR_STORAGE
},
"webServer": {
"cpu": WEB_SERVER_CPU,
"memoryGb": WEB_SERVER_MEMORY,
"storageGb": WEB_SERVER_STORAGE
},
"worker": {
"cpu": WORKER_CPU,
"memoryGb": WORKER_MEMORY,
"storageGb": WORKER_STORAGE,
"minCount": WORKERS_MIN,
"maxCount": WORKERS_MAX
}
},
"environmentSize": "ENVIRONMENT_SIZE"
}
}
Substitua:
SCHEDULER_CPU
pelo número de CPUs de um programador, em unidades de vCPU.SCHEDULER_MEMORY
pela quantidade de memória de um programador, em GB.SCHEDULER_STORAGE
pelo tamanho do disco de um programador, em GB.SCHEDULER_COUNT
pelo número de programadores.TRIGGERER_COUNT
pelo número de acionadores. O valor padrão é0
. Você vai precisar de acionadores se quiser usar operadores adiáveis nos DAGs.- Para ambientes de resiliência padrão, use um valor entre
0
e10
. - Para ambientes altamente resilientes, use
0
ou um valor entre2
e10
.
Se você usar pelo menos um acionador, também será preciso especificar o Parâmetros
TRIGGERER_CPU
eTRIGGERER_MEMORY
:- Para ambientes de resiliência padrão, use um valor entre
TRIGGERER_CPU
especifica o número de CPUs de um acionador; em unidades de vCPU. Valores permitidos:0.5
,0.75
,1
.O
TRIGGERER_MEMORY
configura a quantidade de memória para um engatilhador. A memória mínima necessária é igual ao número de CPUs alocadas para os engatilhadores. O valor máximo permitido é é igual ao número de CPUs do acionador multiplicado por 6,5.Por exemplo, se você definir
TRIGGERER_CPU
como1
, o o valor mínimo paraTRIGGERER_MEMORY
é1
, e o o valor máximo é6.5
.DAG_PROCESSOR_CPU
pelo número de CPUs para o processador de DAG em vCPU unidades.DAG_PROCESSOR_MEMORY
pela quantidade de memória para o DAG em GB.DAG_PROCESSOR_STORAGE
pela quantidade de espaço em disco para o DAG em GB.WEB_SERVER_CPU
pelo número de CPUs do servidor da Web, em unidades de vCPU.WEB_SERVER_MEMORY
pela quantidade de memória do servidor da Web, em GB.WEB_SERVER_STORAGE
pelo tamanho do disco do servidor da Web, em GB.WORKER_CPU
pelo número de CPUs de um worker em unidades de vCPU.WORKER_MEMORY
pela quantidade de memória de um worker, em GB.WORKER_STORAGE
pelo tamanho do disco de um worker, em GB.WORKERS_MIN
pelo número mínimo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que um número menor de workers possa processar a carga.WORKERS_MAX
pelo número máximo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que seja necessário um número maior de workers para processar a carga.ENVIRONMENT_SIZE
pelo tamanho do ambiente,ENVIRONMENT_SIZE_SMALL
,ENVIRONMENT_SIZE_MEDIUM
ouENVIRONMENT_SIZE_LARGE
.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"workloadsConfig": {
"scheduler": {
"cpu": 2.5,
"memoryGb": 2.5,
"storageGb": 2,
"count": 1
},
"triggerer": {
"cpu": 0.5,
"memoryGb": 0.5,
"count": 1
},
"dagProcessor": {
"count": 1,
"cpu": 0.5,
"memoryGb": 2,
"storageGb": 1
},
"webServer": {
"cpu": 1,
"memoryGb": 2.5,
"storageGb": 2
},
"worker": {
"cpu": 1,
"memoryGb": 2,
"storageGb": 2,
"minCount": 2,
"maxCount": 4
}
},
"environmentSize": "ENVIRONMENT_SIZE_SMALL"
}
}
Terraform
Quando você cria um ambiente, os argumentos a seguir controlam os parâmetros de escala e desempenho do seu ambiente.
No bloco
config
:- O campo
environment_size
controla o tamanho do ambiente.
- O campo
No bloco
workloads_config
:- O campo
scheduler.cpu
especifica o número de CPUs para um programador do Airflow. - O campo
scheduler.memory_gb
especifica a quantidade de memória para um programador do Airflow. - O campo
scheduler.storage_gb
especifica a quantidade de espaço em disco para um programador. - O campo
scheduler.count
especifica o número de programadores nas suas de nuvem. - O campo
triggerer.cpu
especifica o número de CPUs para um engatilhador. - O campo
triggerer.memory_gb
especifica a quantidade de memória para um Acionadores do Airflow. O campo
triggerer.count
especifica o número de acionadores nas de nuvem.O campo
dag_processor.cpu
especifica o número de CPUs de um DAG. processamento.O campo
dag_processor.memory_gb
especifica a quantidade de memória para um processador de DAG.O campo
dag_processor.storage_gb
especifica a quantidade de espaço em disco. para um processador de DAG.O campo
dag_processor.count
especifica o número de processadores de DAG.O campo
web_server.cpu
especifica o número de CPUs para o servidor da Web do Airflow.O campo
web_server.memory_gb
especifica a quantidade de memória do servidor da Web do Airflow.O campo
web_server.storage_gb
especifica a quantidade de espaço em disco. para o servidor da Web do Airflow.O campo
worker.cpu
especifica o número de CPUs para um worker do Airflow.O campo
worker.memory_gb
especifica a quantidade de memória para um worker do Airflow.O campo
worker.storage_gb
especifica a quantidade de espaço em disco para um worker do Airflow.O campo
worker.min_count
especifica o número mínimo de workers no ambiente.O campo
worker.max_count
especifica o número máximo de workers no ambiente.
- O campo
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
workloads_config {
scheduler {
cpu = SCHEDULER_CPU
memory_gb = SCHEDULER_MEMORY
storage_gb = SCHEDULER_STORAGE
count = SCHEDULER_COUNT
}
triggerer {
count = TRIGGERER_COUNT
cpu = TRIGGERER_CPU
memory_gb = TRIGGERER_MEMORY
}
web_server {
cpu = WEB_SERVER_CPU
memory_gb = WEB_SERVER_MEMORY
storage_gb = WEB_SERVER_STORAGE
}
worker {
cpu = WORKER_CPU
memory_gb = WORKER_MEMORY
storage_gb = WORKER_STORAGE
min_count = WORKERS_MIN
max_count = WORKERS_MAX
}
}
environment_size = "ENVIRONMENT_SIZE"
}
}
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;SCHEDULER_CPU
pelo número de CPUs de um programador, em unidades de vCPU.SCHEDULER_MEMORY
pela quantidade de memória de um programador, em GB.SCHEDULER_STORAGE
pelo tamanho do disco de um programador, em GB.SCHEDULER_COUNT
pelo número de programadores.TRIGGERER_COUNT
pelo número de acionadores.TRIGGERER_CPU
pelo número de CPUs de um engatilhador, em unidades de vCPU.TRIGGERER_MEMORY
pela quantidade de memória para um engatilhador, em GB.WEB_SERVER_CPU
pelo número de CPUs do servidor da Web, em unidades de vCPU.WEB_SERVER_MEMORY
pela quantidade de memória do servidor da Web, em GB.WEB_SERVER_STORAGE
pelo tamanho do disco do servidor da Web, em GB.WORKER_CPU
pelo número de CPUs de um worker em unidades de vCPU.WORKER_MEMORY
pela quantidade de memória de um worker, em GB.WORKER_STORAGE
pelo tamanho do disco de um worker, em GB.WORKERS_MIN
pelo número mínimo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que um número menor de workers possa processar a carga.WORKERS_MAX
pelo número máximo de workers do Airflow que o ambiente pode executar. O número de workers no ambiente não ultrapassa esse número, mesmo que seja necessário um número maior de workers para processar a carga.ENVIRONMENT_SIZE
pelo tamanho do ambiente,ENVIRONMENT_SIZE_SMALL
,ENVIRONMENT_SIZE_MEDIUM
ouENVIRONMENT_SIZE_LARGE
.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
workloads_config {
scheduler {
cpu = 2.5
memory_gb = 2.5
storage_gb = 2
count = 1
}
triggerer {
count = 1
cpu = 0.5
memory_gb = 0.5
}
web_server {
cpu = 1
memory_gb = 2.5
storage_gb = 2
}
worker {
cpu = 1
memory_gb = 2
storage_gb = 2
min_count = 2
max_count = 4
}
}
environment_size = "ENVIRONMENT_SIZE_SMALL"
}
}
Etapa 4. (Opcional) Especifique uma zona para o banco de dados do ambiente
É possível especificar uma zona do Cloud SQL preferencial para seu ambiente.
Console
Na página Criar ambiente:
Na seção Configuração avançada, expanda o item Mostrar configuração avançada.
Na lista Zona do banco de dados do Airflow, selecione uma na zona do Cloud SQL.
gcloud
Quando você cria um ambiente, o argumento --cloud-sql-preferred-zone
especifica uma zona preferencial do Cloud SQL.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--cloud-sql-preferred-zone SQL_ZONE
Substitua:
SQL_ZONE
: zona preferida do Cloud SQL. Esta zona precisa ser localizada na região onde o ambiente está localizado.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--cloud-sql-preferred-zone us-central1-a
API
Quando você cria um ambiente, na seção Environment > DatabaseConfig, especifique o zona do Cloud SQL de sua preferência.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"databaseConfig": {
"zone": "SQL_ZONE"
}
}
}
Substitua:
SQL_ZONE
: zona preferida do Cloud SQL. Esta zona precisa ser localizada na região onde o ambiente está localizado.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"databaseConfig": {
"zone": "us-central1-a"
}
}
}
Terraform
Quando você cria um ambiente, o campo zone
no database_config
especifica a zona preferida do Cloud SQL.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
database_config {
zone = "SQL_ZONE"
}
}
}
Substitua:
SQL_ZONE
: zona preferencial do Cloud SQL. Essa zona precisa estar localizada na região onde o ambiente está localizado.
Etapa 5. (Opcional) Configurar a rede do ambiente
É possível configurar a rede do Cloud Composer 3 das seguintes maneiras:
- Em um ambiente de IP público, os componentes do Airflow do ambiente podem: acessar a Internet.
- Em um ambiente de IP privado, os componentes do Airflow do ambiente não têm acesso à Internet.
- Os ambientes de IP privado e público se conectar à rede VPC como uma opção separada.
- É possível especificar intervalo de IPs internos do seu ambiente. Este intervalo não poderá ser alterado posteriormente.
Você pode Ativar o acesso à Internet ao instalar pacotes PyPI. Por exemplo, seu ambiente de IP privado pode ainda instalar pacotes PyPI Índice de pacotes Python se você ativar essa é a melhor opção.
Para um ambiente de VPC compartilhada, é preciso fazer mais configurações de rede para o projeto host e, em seguida, criar um ambiente de IP público ou particular em um projeto de serviço. Siga as instruções Como configurar a VPC compartilhada.
Console
Verificar se a rede está configurada para o tipo de ambiente que você quer criar.
Na seção Configuração de rede, expanda no item Mostrar configuração de rede.
Se você quiser conectar seu ambiente a uma rede VPC, na Anexo de rede, selecione um anexo de rede. Você também pode crie um novo anexo de rede. Para mais informações, consulte Conectar um ambiente a uma rede VPC.
Se você quiser criar um ambiente de IP privado, em Tipo de rede selecione a opção Ambiente de IP privado.
Se você quiser adicionar tags de rede, consulte Adicionar tags de rede para mais informações.
gcloud
Verifique se a rede está configurada para o tipo de ambiente que você quer criar.
Quando você cria um ambiente, os argumentos a seguir controlam os parâmetros de rede. Se você omitir um parâmetro, o valor padrão será usado.
--enable-private-environment
ativa um ambiente de IP particular.--network
especifica o ID da rede VPC.--subnetwork
especifica o ID da sub-rede VPC.
--composer-internal-ipv4-cidr-block
especifica intervalo de IPs internos do ambiente. Esse intervalo é usado pelo Cloud Composer no projeto de locatário do seu ambiente.
Exemplo (ambiente de IP privado com uma rede VPC conectada)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--enable-private-environment \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
Substitua:
NETWORK_ID
pelo ID de rede VPC.SUBNETWORK_ID
pelo ID de sub-rede VPC.
Etapa 6. (Opcional) Adicionar tags de rede
As tags de rede são aplicadas a todas as VMs de nós no aglomerado. As tags são usadas para identificar origens ou destinos válidos para a rede firewalls. Cada tag na lista deve estar em conformidade com RFC 1035.
Por exemplo, é possível adicionar tags de rede se você planeja restringir tráfego para um ambiente de IP privado com regras de firewall.
Console
Na página Criar ambiente:
- Localize a seção Configuração de rede.
- No campo Tags de rede, insira as tags de rede do seu ambiente.
gcloud
Quando você cria um ambiente, os seguintes argumentos controlam as tags de rede:
--tags
especifica uma lista separada por vírgulas de tags de rede aplicadas a todas e VMs de nós.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--tags TAGS
Substitua:
TAGS
por uma lista separada por vírgulas de tags de rede.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--tags group1,production
API
Ao criar um ambiente, em Ambiente > EnvironmentConfig, especifique as tags de rede do seu ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"tags": [
"TAG"
]
}
}
}
Substitua:
TAG
por uma tag de rede.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"tags": [
"group1",
"production"
]
}
}
}
Terraform
Quando você cria um ambiente, os seguintes campos definem tags de rede para seu ambiente:
- O campo
tags
no bloconode_config
especifica uma lista separada por vírgulas. de tags de rede aplicadas a todas as VMs de nós.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
tags = ["TAGS"]
}
}
}
Substitua:
TAGS
por uma lista separada por vírgulas de tags de rede.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
tags = ["group1","production"]
}
}
}
Etapa 7. (Opcional) Configurar o acesso à rede do servidor da Web
Os parâmetros de acesso do servidor da Web do Airflow não dependem do tipo de ambiente. Em vez disso, você pode configurar o acesso ao servidor da Web separadamente. Por exemplo, um ambiente de IP privado ainda pode ter a IU do Airflow acessível pela Internet.
Não é possível configurar os intervalos de IP permitidos usando endereços IP particulares.
Console
Na página Criar ambiente:
Na seção Configuração de rede, expanda o item Mostrar configuração de rede.
Na seção Controle de acesso à rede do servidor da Web:
Para fornecer acesso de todos os endereços IP ao servidor da Web do Airflow, selecione Permitir o acesso de todos os endereços IP.
Para restringir o acesso somente a intervalos de IP específicos, selecione Permitir acesso apenas de endereços IP específicos . No campo Intervalo de IP, especifique um intervalo de IP na notação CIDR. No campo Descrição, especifique uma descrição opcional para este intervalo. Se você quiser especificar mais de um intervalo, clique em Adicionar intervalo de IP.
Para proibir o acesso de todos os endereços IP, selecione Permitir acesso somente de endereços IP específicos e clique em Excluir item ao lado da entrada de intervalo vazia.
gcloud
Quando você cria um ambiente, os seguintes argumentos controlam o nível de acesso do servidor da Web:
--web-server-allow-all
fornece acesso ao Airflow de todos os endereços IP. Essa é a opção padrão.--web-server-allow-ip
restringe o acesso apenas a intervalos de IP de origem específicos. Para especificar vários intervalos de IP, use esse argumento várias vezes.--web-server-deny-all
proíbe o acesso a todos os endereços IP.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Substitua:
WS_IP_RANGE
pelo intervalo de IP, na notação CIDR, que pode acessar a IU do Airflow.WS_RANGE_DESCRIPTION
pela descrição do intervalo de IP;
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--web-server-allow-ip ip_range=192.0.2.0/24,description="office net 1" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="office net 3"
API
Ao criar um ambiente, em Ambiente > EnvironmentConfig, especifique o servidor da Web parâmetros de acesso.
Para fornecer acesso de todos os endereços IP ao servidor da Web do Airflow, omitir
webServerNetworkAccessControl
.Para restringir o acesso apenas a intervalos de IP específicos, especifique um ou mais intervalos em
allowedIpRanges
.Para proibir o acesso de todos os endereços IP, adicione
allowedIpRanges
e transforme-o em uma lista vazia. Não especifique intervalos de IP nele.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
}
}
}
Substitua:
WS_IP_RANGE
pelo intervalo de IP, na notação CIDR, que pode acessar a IU do Airflow.WS_RANGE_DESCRIPTION
pela descrição do intervalo de IP;
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "office net 1"
},
{
"value": "192.0.4.0/24",
"description": "office net 3"
}
]
}
}
}
Terraform
Quando você cria um ambiente, o bloco allowed_ip_range
no bloco web_server_network_access_control
contém intervalos de IP que podem acessar o servidor da Web.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
web_server_network_access_control {
allowed_ip_range {
value = "WS_IP_RANGE"
description = "WS_RANGE_DESCRIPTION"
}
}
}
}
Substitua:
WS_IP_RANGE
pelo intervalo de IP, na notação CIDR, que pode acessar a IU do Airflow.WS_RANGE_DESCRIPTION
pela descrição do intervalo de IP;
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
web_server_network_access_control {
allowed_ip_range {
value = "192.0.2.0/24"
description = "office net 1"
},
allowed_ip_range {
value = "192.0.4.0/24"
description = "office net 3"
}
}
}
Etapa 8. (Opcional) Especificar substituições de configuração e variáveis de ambiente do Airflow
É possível configurar substituições de configuração do Airflow e variáveis de ambiente ao criar um ambiente. Como alternativa, faça isso mais tarde, depois que seu ambiente for criado.
Algumas opções de configuração do Airflow são bloqueadas e não é possível substituí-las.
Para ver a lista de opções de configuração disponíveis do Airflow, consulte Referência de configuração para o Airflow 2 e o Airflow 1.10.*
Para especificar substituições de configuração e variáveis de ambiente do Airflow:
Console
Na página Criar ambiente:
Na seção Variáveis de ambiente, clique em Adicionar variável de ambiente.
Digite o Nome e o Valor da variável de ambiente.
Na seção Substituições de configuração do Airflow, clique em Adicionar substituição da configuração do Airflow.
Insira a Seção, a Chave e o Valor para substituir a opção de configuração.
Exemplo:
Seção Chave Valor webserver
dag_orientation
TB
gcloud
Quando você cria um ambiente, os argumentos a seguir controlam as variáveis de ambiente e as substituições de configuração do Airflow:
--env-variables
especifica uma lista separada por vírgulas de variáveis de ambiente.Os nomes das variáveis podem conter letras maiúsculas e minúsculas, dígitos e sublinhados, mas não podem começar com um dígito.
--airflow-configs
especifica uma lista de chaves e valores separada por vírgula para substituições de configuração do Airflow.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Substitua:
ENV_VARS
por uma lista de paresNAME=VALUE
separados por vírgulas para variáveis de ambiente.CONFIG_OVERRIDES
por uma lista de paresSECTION-KEY=VALUE
separados por vírgulas para substituições de configuração. Separe o nome da seção de configuração com um símbolo-
, seguido pelo nome da chave. Por exemplo,core-dags_are_paused_at_creation
.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--env-variables SENDGRID_MAIL_FROM=user@example.com,SENDGRID_API_KEY=example-key \
--airflow-configs core-dags_are_paused_at_creation=True,webserver-dag_orientation=TB
API
Ao criar um ambiente, em Ambiente > EnvironmentConfig, especifique variáveis de ambiente e substituições de configuração do Airflow.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"SECTION-KEY": "OVERRIDE_VALUE"
},
"envVariables": {
"VAR_NAME": "VAR_VALUE",
}
}
}
}
Substitua:
SECTION
pela seção no arquivo de configuração em que a opção de configuração do Airflow está localizada;KEY
pelo nome da opção de configuração do Airflow;OVERRIDE_VALUE
por um valor da opção de configuração do Airflow;VAR_NAME
pelo nome da variável de ambiente;VAR_VALUE
pelo valor da variável de ambiente.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"airflowConfigOverrides": {
"core-dags_are_paused_at_creation": "True",
"webserver-dag_orientation": "TB"
},
"envVariables": {
"SENDGRID_MAIL_FROM": "user@example.com",
"SENDGRID_API_KEY": "example-key"
}
}
}
}
Terraform
Quando você cria um ambiente, os seguintes blocos controlam as variáveis de ambiente e as substituições de configuração do Airflow:
O bloco
env_variables
no blocosoftware_config
especifica as variáveis de ambiente.Os nomes das variáveis podem conter letras maiúsculas e minúsculas, dígitos e sublinhados, mas não podem começar com um dígito.
O bloco
airflow_config_overrides
no blocosoftware_config
especifica substituições de configuração do Airflow.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
software_config {
airflow_config_overrides = {
SECTION-KEY = "OVERRIDE_VALUE"
}
env_variables = {
VAR_NAME = "VAR_VALUE"
}
}
}
}
Substitua:
SECTION
pela seção no arquivo de configuração em que a opção de configuração do Airflow está localizada;KEY
pelo nome da opção de configuração do Airflow;OVERRIDE_VALUE
por um valor da opção de configuração do Airflow;VAR_NAME
pelo nome da variável de ambiente;VAR_VALUE
pelo valor da variável de ambiente.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
airflow_config_overrides = {
core-dags_are_paused_at_creation = "True"
webserver-dag_orientation = "TB"
}
env_variables = {
SENDGRID_MAIL_FROM = "user@example.com"
SENDGRID_API_KEY = "example-key"
}
}
}
}
Etapa 9: (Opcional) Especificar janelas de manutenção
Janelas de manutenção padrão no Cloud Composer 3 são definidas da seguinte maneira:
- Todos os horários estão no fuso horário local da região onde seu ambiente está localizado, mas com o horário de verão ignorado.
- As janelas de manutenção de terças, quartas, quintas e sextas-feiras são de de 00:00:00 a 02:00:00.
- No sábado, no domingo e na segunda-feira, as janelas de manutenção são a partir da 0h às 4:00:00.
Para especificar janelas de manutenção personalizadas para seu ambiente:
Console
Na página Criar ambiente
Localize a seção Janelas de manutenção.
Na lista suspensa Fuso horário, escolha um fuso horário para janelas de manutenção.
Defina Horário de início, Dias e Duração para que o horário combinado da programação especificada seja de pelo menos 12 horas em uma janela de 7 dias. Por exemplo, um período de quatro horas toda segunda, quarta e sexta-feira fornece o tempo necessário.
gcloud
Os argumentos a seguir definem os parâmetros das janelas de manutenção:
--maintenance-window-start
define o horário de início de uma janela de manutenção.--maintenance-window-end
define o horário de término de uma janela de manutenção.--maintenance-window-recurrence
define a recorrência da janela de manutenção.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Substitua:
ENVIRONMENT_NAME
pelo nome do ambiente;DATETIME_START
pela data e hora de início no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada.DATETIME_END
pela data e hora de término no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada. A data e hora especificadas precisam ser posteriores à data de início.MAINTENANCE_RECURRENCE
por um RFC 5545 RRULE para recorrência de janelas de manutenção. O Cloud Composer é compatível com dois formatos:O formato
FREQ=DAILY
especifica uma recorrência diária.O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
especifica uma recorrência nos dias da semana selecionados.
O exemplo a seguir especifica uma janela de manutenção de seis horas entre a 1h e 07:00 (UTC) às quartas-feiras, aos sábados e aos domingos. O dia 1o de janeiro de 2023 a data é ignorada.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--maintenance-window-start '2023-01-01T01:00:00Z' \
--maintenance-window-end '2023-01-01T07:00:00Z' \
--maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'
API
Quando você cria um ambiente, Ambiente > EnvironmentConfig, especifique parâmetros das janelas de manutenção:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
}
}
}
Substitua:
DATETIME_START
pela data e hora de início no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada.DATETIME_END
pela data e hora de término no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada. A data e a hora especificadas precisam ser posteriores à data de início.MAINTENANCE_RECURRENCE
por um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Cloud Composer é compatível com dois formatos:O formato
FREQ=DAILY
especifica uma recorrência diária.O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
especifica uma recorrência nos dias da semana selecionados.
O exemplo a seguir especifica uma janela de manutenção de seis horas entre a 1h e 07:00 (UTC) às quartas-feiras, aos sábados e aos domingos. O dia 1o de janeiro de 2023 a data é ignorada.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"maintenanceWindow": {
"startTime": "2023-01-01T01:00:00Z",
"endTime": "2023-01-01T07:00:00Z",
"recurrence": "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}
Terraform
O bloco maintenance_window
especifica as janelas de manutenção
de nuvem:
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
maintenance_window {
start_time = "DATETIME_START"
end_time = "DATETIME_END"
recurrence = "MAINTENANCE_RECURRENCE"
}
}
}
Substitua:
DATETIME_START
pela data e hora de início no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada.DATETIME_END
pela data e hora de término no formato de entrada de data/hora. Somente a hora especificada do dia é usada, a data especificada é ignorada. A data e a hora especificadas precisam ser posteriores à data de início.MAINTENANCE_RECURRENCE
por um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Cloud Composer é compatível com dois formatos:- O formato
FREQ=DAILY
especifica uma recorrência diária. - O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
especifica uma recorrência nos dias da semana selecionados.
- O formato
O exemplo a seguir especifica uma janela de manutenção de seis horas entre a 1h e 07:00 (UTC) às quartas-feiras, aos sábados e aos domingos. O dia 1o de janeiro de 2023 a data é ignorada.
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
maintenance_window {
start_time = "2023-01-01T01:00:00Z"
end_time = "2023-01-01T07:00:00Z"
recurrence = "FREQ=WEEKLY;BYDAY=SU,WE,SA"
}
}
}
Etapa 10: (Opcional) Integração da linhagem de dados
A linhagem de dados é um recurso do Dataplex que permite acompanhar o movimento dos dados.
A integração da linhagem de dados está disponível em todas as versões. do Cloud Composer 3.A integração da linhagem de dados é ativada automaticamente em uma nova Ambiente do Cloud Composer se as condições a seguir forem atendidas:
A API Data Lineage está ativada no projeto. Para mais informações, consulte Como ativar a API Data Lineage em Documentação do Dataplex.
Um personalizado Back-end de linhagem não está configurado no Airflow.
É possível desativar a integração da linhagem de dados ao criar um ambiente. Para exemplo, se você quiser modificar o comportamento automático ou optar por ativar a linhagem de dados mais tarde, depois que o ambiente for criados.
Console
Para desativar a integração da linhagem de dados, na página Criar ambiente:
Na seção Configuração avançada, expanda o item Mostrar configuração avançada.
Na seção Integração da linhagem de dados do Dataplex, selecione Desativar a integração com a linhagem de dados do Dataplex (em inglês).
gcloud
Quando você cria um ambiente, o --disable-cloud-data-lineage-integration
desativa a integração da linhagem de dados.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--disable-cloud-data-lineage-integration
Substitua:
ENVIRONMENT_NAME
pelo nome do ambienteLOCATION
pela região em que o ambiente está localizado;
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--disable-cloud-data-lineage-integration
Etapa 11: (Opcional) Configurar criptografia de dados (CMEK)
Por padrão, os dados do seu ambiente são criptografados com uma chave fornecida pelo Google.
Para usar chaves de criptografia gerenciadas pelo cliente (CMEK) para criptografar dados no ambiente, siga as instruções descritas em Como usar chaves de criptografia gerenciadas pelo cliente.
Etapa 12: (Opcional) Usar o bucket de um ambiente personalizado
Quando você cria um ambiente, o Cloud Composer gera um bucket para seu ambiente automaticamente.
Como alternativa, é possível especificar um bucket personalizado do Cloud Storage pelo projeto. Seu ambiente usa esse bucket da mesma forma que o bucket automático que você criou.
Para usar um bucket de ambiente personalizado, siga as instruções descritas em Use o bucket de um ambiente personalizado.
Etapa 13. (Opcional) Especificar identificadores de ambiente
É possível atribuir rótulos aos ambientes para detalhar os custos de faturamento com base nesses rótulos.
Console
Na página Criar ambiente, na seção Identificadores:
Clique em Adicionar rótulo.
Nos campos Chave e Valor, especifique os pares de chave e valor para os identificadores de ambiente.
gcloud
Quando você cria um ambiente, o argumento --labels
especifica uma lista de chaves e valores separada por vírgulas com identificadores de ambiente.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.7.3-build.8 \
--labels LABELS
Substitua:
LABELS
por uma lista de paresKEY=VALUE
separados por vírgulas para identificadores de ambiente.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.7.3-build.8 \
--labels owner=engineering-team,env=production
API
Ao criar um ambiente, no recurso Ambiente, especifique identificadores para o ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"labels": {
"LABEL_KEY": "LABEL_VALUE"
}
}
Substitua:
LABEL_KEY
por uma chave do identificador do ambiente.LABEL_VALUE
por um valor do identificador de ambiente.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"labels": {
"owner": "engineering-team",
"env": "production"
}
}
Terraform
Ao criar um ambiente, especifique identificadores no bloco labels
(fora do bloco config
).
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
labels = {
LABEL_KEY = "LABEL_VALUE"
}
}
Substitua:
LABEL_KEY
por uma chave do identificador do ambiente.LABEL_VALUE
por um valor do identificador de ambiente.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
labels = {
owner = "engineering-team"
env = "production"
}
}
A seguir
- Como resolver problemas da criação de ambientes
- Como configurar a VPC compartilhada
- Como configurar o VPC Service Controls
- Como adicionar e atualizar DAGs
- Como acessar a IU do Airflow
- Como atualizar e excluir ambientes
- Sobre as versões do Cloud Composer