Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Esta página explica como criar um ambiente do Cloud Composer.
- Para mais informações sobre ambientes, consulte o artigo Arquitetura de ambientes.
- Para mais informações sobre como criar um ambiente com o Terraform, consulte o artigo Crie ambientes (Terraform).
Antes de começar
Ative a API Cloud Composer. Para ver a lista completa dos serviços usados pelo Cloud Composer, consulte o artigo Serviços necessários para o Cloud Composer.
O tempo aproximado para criar um ambiente é de 25 minutos.
Se criar um ambiente com o Terraform, a conta de serviço usada pelo Terraform tem de ter uma função com a autorização
composer.environments.createativada.Para mais informações acerca da conta de serviço do Terraform, consulte a referência de configuração do fornecedor Google.
Para mais informações sobre a utilização do Terraform para criar um ambiente do Cloud Composer, consulte a documentação do Terraform.
Para mais informações sobre parâmetros adicionais, consulte a Referência de argumentos do Terraform.
IP privado: existem requisitos específicos de rede e intercâmbio para criar um ambiente de IP privado. Para mais informações, consulte o artigo Configurar o IP privado.
VPC partilhada: existem requisitos de rede específicos para usar a VPC partilhada com o Cloud Composer. Para mais informações, consulte o artigo Configurar a VPC partilhada.
VPC SC: para implementar ambientes do Cloud Composer num perímetro de segurança, consulte o artigo Configurar o VPC SC. Quando usados com o Cloud Composer, os VPC Service Controls têm várias limitações conhecidas.
Passo 1. Crie ou escolha a conta de serviço de um ambiente
Quando cria um ambiente, especifica uma conta de serviço. Esta conta de serviço chama-se conta de serviço do ambiente. O seu ambiente usa esta conta de serviço para realizar a maioria das operações.
A conta de serviço do seu ambiente não é uma conta de utilizador. Uma conta de serviço é um tipo especial de conta usada por uma aplicação ou uma instância de máquina virtual (MV), e não por uma pessoa.
Não pode alterar a conta de serviço do seu ambiente mais tarde.
Se ainda não tiver uma conta de serviço para ambientes do Cloud Composer no seu projeto, crie-a.
Consulte o artigo Criar ambientes (Terraform) para ver um exemplo detalhado de como criar uma conta de serviço para o seu ambiente no Terraform.
Para criar uma nova conta de serviço para o seu ambiente:
Crie uma nova conta de serviço, conforme descrito na documentação de gestão de identidade e de acesso.
Atribuir-lhe uma função, conforme descrito na documentação da gestão de identidade e de acesso. A função necessária é Composer Worker (
composer.worker).Se o seu ambiente usar restrições de localização de recursos, ou instalar pacotes PyPI a partir de um repositório do Artifact Registry ou a partir de um repositório privado, conceda a função Utilizador da conta de serviço (
iam.serviceAccountUser) à conta de serviço gerida pelo utilizador que executa o seu ambiente (o principal e o recurso são a mesma conta de serviço).Para aceder a outros recursos no seu Google Cloud projeto, conceda autorizações adicionais para aceder a esses recursos a esta conta de serviço. A função Composer Worker (
composer.worker) fornece este conjunto de autorizações necessário na maioria dos casos. Adicione autorizações adicionais a esta conta de serviço apenas quando for necessário para o funcionamento dos seus DAGs.
Passo 2. Configuração básica
Este passo cria um ambiente do Cloud Composer com parâmetros predefinidos na localização especificada.
Consola
Na Google Cloud consola, aceda à página Criar ambiente.
No campo Nome, introduza um nome para o seu ambiente.
O nome tem de começar com uma letra minúscula seguida de até 62 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente, pelo que tem de fornecer um nome que também seja válido como nome de contentor do Cloud Storage. Consulte as diretrizes de nomenclatura de contentores para ver uma lista de restrições.
Na lista pendente Localização, escolha uma localização para o seu ambiente.
Uma localização é a região onde o ambiente está localizado.
Na lista pendente Versão da imagem, selecione uma imagem do Cloud Composer com a versão necessária do Airflow.
Na secção Configuração do nó, na lista pendente Conta de serviço, selecione uma conta de serviço para o seu ambiente.
Se ainda não tiver uma conta de serviço para o seu ambiente, consulte o artigo Crie ou escolha a conta de serviço de um ambiente.
gcloud
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION \
--service-account "SERVICE_ACCOUNT"
Substituição:
ENVIRONMENT_NAMEcom o nome do ambiente.O nome tem de começar com uma letra minúscula seguida de até 62 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente, pelo que tem de fornecer um nome que também seja válido como nome de contentor do Cloud Storage. Consulte as diretrizes de nomenclatura de contentores para ver uma lista de restrições.
LOCATIONcom a região para o ambiente.Uma localização é a região onde o ambiente está localizado.
SERVICE_ACCOUNTcom a conta de serviço do seu ambiente.IMAGE_VERSIONcom o nome de uma imagem do Cloud Composer.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
"
API
Construa um pedido 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"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substituição:
PROJECT_IDcom o ID do projeto.LOCATIONcom a região para o ambiente.Uma localização é a região onde o ambiente está localizado.
ENVIRONMENT_NAMEcom o nome do ambiente.O nome tem de começar com uma letra minúscula seguida de até 62 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente, pelo que tem de fornecer um nome que também seja válido como nome de contentor do Cloud Storage. Consulte as diretrizes de nomenclatura de contentores para ver uma lista de restrições.
IMAGE_VERSIONcom o nome de uma imagem do Cloud Composer.SERVICE_ACCOUNTcom a 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": {
"softwareConfig": {
"imageVersion": "composer-1.20.12-airflow-1.10.15"
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Para criar um ambiente com parâmetros predefinidos numa localização especificada, 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"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substituição:
ENVIRONMENT_NAMEcom o nome do ambiente.O nome tem de começar com uma letra minúscula seguida de até 62 letras minúsculas, números ou hífenes, e não pode terminar com um hífen. O nome do ambiente é usado para criar subcomponentes para o ambiente, pelo que tem de fornecer um nome que também seja válido como nome de contentor do Cloud Storage. Consulte as diretrizes de nomenclatura de contentores para ver uma lista de restrições.
LOCATIONcom a região para o ambiente.Uma localização é a região onde o ambiente está localizado.
IMAGE_VERSIONcom o nome de uma imagem do Cloud Composer.SERVICE_ACCOUNTcom a conta de serviço do seu ambiente.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-1.20.12-airflow-1.10.15"
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Passo 3. (Opcional) Configure a escala do ambiente e os parâmetros de desempenho
Para especificar a configuração de escala e desempenho do seu ambiente, indique o número de nós no cluster do GKE do seu ambiente e selecione os tipos de máquinas para os componentes do ambiente.
Consola
Na página Criar ambiente:
Na secção Configuração do nó:
Introduza a quantidade de nós.
O número de nós é o número de nós do Google Kubernetes Engine no cluster do ambiente. Por predefinição, os ambientes têm 3 nós.
Pode alterar este valor depois de criar o ambiente.
Escolha o Tipo de máquina para os nós.
O tipo de máquina para nós é o tipo de máquina do Compute Engine usado para instâncias de cluster. Este parâmetro determina o número de CPUs e a quantidade de memória para o seu ambiente. O tipo de máquina predefinido é
n1-standard-1.Para alterar este valor depois de criar o ambiente, tem de reconfigurar manualmente o cluster do ambiente.
Introduza o tamanho do disco.
O tamanho do disco, em GB, para nós do ambiente. Cada nó no seu ambiente tem esta quantidade de espaço em disco. Selecione um tamanho do disco maior se esperar armazenar um grande volume de dados em pastas sincronizadas com VMs do ambiente. Por exemplo, na pasta
/datado contentor do seu ambiente.O tamanho mínimo é de 30 GB. O tamanho predefinido é de 100 GB. Não pode alterar este parâmetro depois de criar um ambiente.
Escolha o Número de agendadores.
O seu ambiente pode executar mais do que um programador do Airflow em simultâneo. Use vários agendadores para distribuir a carga entre várias instâncias do agendador para um melhor desempenho e fiabilidade.
O aumento do número de agendadores nem sempre melhora o desempenho do Airflow. Por exemplo, ter apenas um programador pode oferecer um melhor desempenho do que ter dois. Isto pode acontecer quando o agendador adicional não é usado e, por isso, consome recursos do seu ambiente sem contribuir para o desempenho geral. O desempenho real do agendador depende do número de trabalhadores do Airflow, do número de DAGs e tarefas executadas no seu ambiente, bem como da configuração do Airflow e do ambiente.
Recomendamos que comece com dois programadores e, em seguida, monitorize o desempenho do seu ambiente. Se alterar o número de programadores, pode sempre reduzir a escala do seu ambiente para o número original de programadores.
Para mais informações sobre a configuração de várias programações, consulte a documentação do Airflow.
Expanda o item Rede, substituições de configuração do Airflow e funcionalidades adicionais.
Na secção Configuração do Cloud SQL, escolha o tipo de máquina do Cloud SQL.
Este parâmetro determina o tipo de máquina para a instância do Cloud SQL que executa a base de dados do Airflow. O tipo de máquina predefinido do Cloud SQL é
db-n1-standard-2.Na secção Configuração do servidor Web, escolha o Tipo de máquina do servidor Web.
Este parâmetro determina o tipo de máquina para a instância do Compute Engine que executa o servidor Web do Airflow.
O tipo de máquina do servidor Web predefinido é
composer-n1-webserver-2.
gcloud
Quando cria um ambiente, os seguintes argumentos controlam os parâmetros de desempenho e escala do ambiente:
--node-countespecifica o número de nós no seu ambiente.O número de nós é o número de nós do Google Kubernetes Engine no cluster do ambiente. Por predefinição, os ambientes têm 3 nós.
Pode alterar este valor depois de criar o ambiente.
--scheduler-countespecifica o número de agendadores no seu ambiente.O seu ambiente pode executar mais do que um programador do Airflow em simultâneo. Use vários agendadores para distribuir a carga entre várias instâncias do agendador para um melhor desempenho e fiabilidade.
O aumento do número de agendadores nem sempre melhora o desempenho do Airflow. Por exemplo, ter apenas um programador pode oferecer um melhor desempenho do que ter dois. Isto pode acontecer quando o agendador adicional não é usado e, por isso, consome recursos do seu ambiente sem contribuir para o desempenho geral. O desempenho real do agendador depende do número de trabalhadores do Airflow, do número de DAGs e tarefas executadas no seu ambiente, bem como da configuração do Airflow e do ambiente.
Recomendamos que comece com dois programadores e, em seguida, monitorize o desempenho do seu ambiente. Se alterar o número de programadores, pode sempre reduzir a escala do seu ambiente para o número original de programadores.
Para mais informações sobre a configuração de várias programações, consulte a documentação do Airflow.
--disk-sizeespecifica o tamanho do disco para VMs de ambiente.O tamanho do disco, em GB, para nós do ambiente. Cada nó no seu ambiente tem esta quantidade de espaço em disco. Selecione um tamanho do disco maior se esperar armazenar um grande volume de dados em pastas sincronizadas com VMs do ambiente. Por exemplo, na pasta
/datado contentor do seu ambiente.O tamanho mínimo é de 30 GB. O tamanho predefinido é de 100 GB. Não pode alterar este parâmetro depois de criar um ambiente.
--machine-typeespecifica o tipo de máquina para VMs de nós.O tipo de máquina para nós é o tipo de máquina do Compute Engine usado para instâncias de cluster. Este parâmetro determina o número de CPUs e a quantidade de memória para o seu ambiente. O tipo de máquina predefinido é
n1-standard-1.Para alterar este valor depois de criar o ambiente, tem de reconfigurar manualmente o cluster do ambiente.
--cloud-sql-machine-typeespecifica o tipo de máquina para a instância do Cloud SQL.Este parâmetro determina o tipo de máquina para a instância do Cloud SQL que executa a base de dados do Airflow. O tipo de máquina predefinido do Cloud SQL é
db-n1-standard-2.--web-server-machine-typeespecifica o tipo de máquina para a instância do servidor Web do Airflow.Este parâmetro determina o tipo de máquina para a instância do Compute Engine que executa o servidor Web do Airflow.
O tipo de máquina do servidor Web predefinido é
composer-n1-webserver-2.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--zone NODE_ZONE \
--node-count NODE_COUNT \
--scheduler-count SCHEDULER_COUNT \
--disk-size DISK_SIZE \
--machine-type NODE_MACHINE_TYPE \
--cloud-sql-machine-type SQL_MACHINE_TYPE \
--web-server-machine-type WS_MACHINE_TYPE
Substituição:
NODE_COUNTcom o número de nós.NODE_ZONEcom a zona do Compute Engine para as VMs do seu ambiente.SCHEDULER_COUNTcom o número de programadores.DISK_SIZEcom o tamanho do disco para VMs de ambiente, em GB.NODE_MACHINE_TYPEcom o tipo de máquina para VMs de nós.SQL_MACHINE_TYPEcom o tipo de máquina para a instância do Cloud SQL.WS_MACHINE_TYPEcom o tipo de máquina para a instância do servidor Web do Airflow.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--zone us-central1-a \
--node-count 6 \
--scheduler-count 1 \
--disk-size 50 \
--machine-type n1-standard-2 \
--cloud-sql-machine-type db-n1-standard-2 \
--web-server-machine-type composer-n1-webserver-2
API
Quando cria um ambiente, no recurso Environment > EnvironmentConfig, especifique os parâmetros de desempenho e escala do ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeCount": NODE_COUNT,
"nodeConfig": {
"machineType": "NODE_MACHINE_TYPE",
"diskSizeGb": DISK_SIZE,
"serviceAccount": "SERVICE_ACCOUNT"
},
"softwareConfig": {
"schedulerCount": SCHEDULER_COUNT
},
"databaseConfig": {
"machineType": "SQL_MACHINE_TYPE"
},
"webServerConfig": {
"machineType": "WS_MACHINE_TYPE"
}
}
}
Substituição:
NODE_COUNTcom o número de nós.DISK_SIZEcom o tamanho do disco para VMs de ambiente, em GB.NODE_MACHINE_TYPEcom o tipo de máquina para VMs de nós. Este valor tem de conter uma zona para as VMs do seu ambiente.SCHEDULER_COUNTcom o número de programadores.SQL_MACHINE_TYPEcom o tipo de máquina para a instância do Cloud SQL.WS_MACHINE_TYPEcom o tipo de máquina para a instância do servidor Web do Airflow.
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeCount": 6,
"nodeConfig": {
"machineType": "projects/example-project/zones/us-central1-a/machineTypes/n1-standard-2",
"diskSizeGb": 50,
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
},
"softwareConfig": {
"schedulerCount": 1
},
"databaseConfig": {
"machineType": "db-n1-standard-2"
},
"webServerConfig": {
"machineType": "composer-n1-webserver-2"
}
}
}
Terraform
Quando cria um ambiente, os seguintes campos controlam a escala do ambiente e os parâmetros de desempenho:
node_countno bloconode_configespecifica o número de nós no seu ambiente.O número de nós é o número de nós do Google Kubernetes Engine no cluster do ambiente. Por predefinição, os ambientes têm 3 nós.
Pode alterar este valor depois de criar o ambiente.
disk_size_gbno bloconode_configespecifica o tamanho do disco para VMs de ambiente.O tamanho do disco, em GB, para nós do ambiente. Cada nó no seu ambiente tem esta quantidade de espaço em disco. Selecione um tamanho do disco maior se esperar armazenar um grande volume de dados em pastas sincronizadas com VMs do ambiente. Por exemplo, na pasta
/datado contentor do seu ambiente.O tamanho mínimo é de 30 GB. O tamanho predefinido é de 100 GB. Não pode alterar este parâmetro depois de criar um ambiente.
machine_typeno bloconode_configespecifica o tipo de máquina para VMs de nós. Quando especificar este campo, também tem de indicar uma zona do Compute Engine para as VMs do ambiente no campozone.O tipo de máquina para nós é o tipo de máquina do Compute Engine usado para instâncias de cluster. Este parâmetro determina o número de CPUs e a quantidade de memória para o seu ambiente. O tipo de máquina predefinido é
n1-standard-1.Para alterar este valor depois de criar o ambiente, tem de reconfigurar manualmente o cluster do ambiente.
machine_typeno blocodatabase_configespecifica o tipo de máquina para a instância do Cloud SQL.Este parâmetro determina o tipo de máquina para a instância do Cloud SQL que executa a base de dados do Airflow. O tipo de máquina predefinido do Cloud SQL é
db-n1-standard-2.machine_typeno blocoweb_server_configespecifica o tipo de máquina para a instância do servidor Web do Airflow.Este parâmetro determina o tipo de máquina para a instância do Compute Engine que executa o servidor Web do Airflow.
O tipo de máquina do servidor Web predefinido é
composer-n1-webserver-2.O campo
scheduler_countno blocosoftware_configespecifica o número de programadores no seu ambiente. O seu ambiente tem de usar o Airflow 2.
resource "google_composer_environment" "example" {
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
node_count = NODE_COUNT
disk_size_gb = DISK_SIZE
machine_type = "NODE_MACHINE_TYPE"
zone = "NODE_ZONE"
service_account = "SERVICE_ACCOUNT"
}
software_config {
scheduler_count = SCHEDULER_COUNT
}
database_config {
machine_type = "SQL_MACHINE_TYPE"
}
web_server_config {
machine_type = "WS_MACHINE_TYPE"
}
}
}
Substituição:
NODE_COUNTcom o número de nós.DISK_SIZEcom o tamanho do disco para VMs de ambiente, em GB.NODE_MACHINE_TYPEcom o tipo de máquina para VMs de nós.NODE_ZONEcom a zona do Compute Engine para as VMs do seu ambiente.SCHEDULER_COUNTcom o número de programadores.SQL_MACHINE_TYPEcom o tipo de máquina para a instância do Cloud SQL.WS_MACHINE_TYPEcom o tipo de máquina para a instância do servidor Web do Airflow.
Exemplo:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
node_count = 4
disk_size_gb = 100
zone = "us-central1-a"
machine_type = "n1-standard-2"
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
software_config {
scheduler_count = 2
}
database_config {
machine_type = "db-n1-standard-2"
}
web_server_config {
machine_type = "composer-n1-webserver-2"
}
}
}
Passo 4. (Opcional) Configure a rede do seu ambiente
Os parâmetros de rede dependem do tipo de ambiente que quer criar:
Ambiente de IP público. Usar os parâmetros de rede predefinidos.
Ambiente de IP privado (interligações de VPC). Nesta configuração, o seu ambiente usa interligações de VPC para a conetividade.
Configure o seu ambiente de IP privado:
- Configure a rede do seu projeto para ambientes de IP privado.
- Especifique outros parâmetros para o seu ambiente de IP privado, conforme descrito mais adiante nesta secção.
Para um ambiente de IP privado com interligações de VPC, tem de saber:
- O ID da sua rede de VPC
- O ID da sua sub-rede de VPC
Dois intervalos de IP secundários na sua sub-rede de VPC:
- Intervalo de IPs secundário para pods
- Intervalo de IP secundário para serviços
Intervalos de IP para os componentes do ambiente:
- Intervalo de IPs para o plano de controlo do GKE.
- Intervalo de IP do servidor Web.
- Intervalo de IP para a instância do Cloud SQL.
Para um ambiente de VPC partilhada, tem de fazer uma configuração de rede adicional para o projeto anfitrião e, em seguida, criar um ambiente de IP público ou privado num projeto de serviço. Siga as instruções na página Configurar VPC partilhada.
Para um ambiente de VPC partilhada, precisa de saber o seguinte:
- O ID da rede VPC do projeto anfitrião
O ID da sub-rede da VPC do projeto anfitrião
Dois intervalos de IP secundários na sub-rede VPC do projeto anfitrião:
- Intervalo de IPs secundário para pods
- Intervalo de IP secundário para serviços
Quando cria um ambiente de VPC partilhada com IP público, continua a ter de especificar a rede VPC, a sub-rede e os intervalos de IP secundários do projeto anfitrião para pods e serviços.
Para criar um ambiente do VPC SC, tem de criar um perímetro de serviço e, em seguida, criar ambientes de IP privado dentro deste perímetro. Siga as instruções descritas no artigo Configurar o VPC Service Controls.
As opções de rede adicionais para ambientes são:
- Endereços IP públicos usados de forma privada. Se quiser usar mais endereços IP, o seu ambiente pode usar de forma privada determinados intervalos de endereços IP públicos como intervalos de endereços IP internos de sub-redes para pods e serviços.
- Redes autorizadas. Se quiser aceder ao plano de controlo do seu ambiente de IP privado através de HTTPS, pode usar redes autorizadas para especificar intervalos CIDR que o podem fazer.
- Agente de máscara de IP. Ao usar ambientes com o agente de ocultação de IP, pode usar traduções de endereços IP de vários para um nas configurações de rede do seu ambiente. Para mais informações sobre a criação de ambientes com o agente de ocultação de IP, consulte o artigo Ative o agente de ocultação de IP.
Consola
Para criar um ambiente de IP privado:
Certifique-se de que a sua rede está configurada para o tipo de ambiente que quer criar.
Expanda o item Rede, substituições de configuração do Airflow e funcionalidades adicionais.
Na secção Configuração de rede, selecione a caixa de verificação Ativar modo nativo da VPC (com IP de alias).
Na lista pendente Rede, selecione o ID da sua rede de VPC.
Na lista pendente Sub-rede, selecione o ID da sub-rede de VPC.
Na secção Atribuição de endereços IP de pods, especifique o intervalo de IP secundário para pods. Pode usar um intervalo secundário existente na sua rede VPC ou especificar um novo na notação CIDR.
Na secção Atribuição de endereço IP de serviço, especifique o intervalo de IP secundário para serviços. Pode usar um intervalo secundário existente na sua rede VPC ou especificar um novo na notação CIDR.
Na secção IP privado, selecione a caixa de verificação Ativar IP privado.
Na secção IP privado principal do cluster do GKE, especifique um intervalo de IP para o plano de controlo do GKE:
Para usar o intervalo de IPs predefinido para a região onde o seu ambiente está localizado, selecione Intervalo de IPs predefinido.
Para especificar um intervalo de IPs personalizado, selecione Intervalo de IPs personalizado e introduza um intervalo na notação CIDR no campo IP privado principal do cluster do GKE.
Selecione o nível de acesso para o plano de controlo do GKE. O plano de controlo tem dois pontos finais. Um ponto final é privado, para utilização por nós de cluster e VMs. Outro ponto final é público. Pode especificar o nível de acesso para o ponto final público:
Para ativar o acesso ao ponto final público a partir de redes autorizadas, selecione a caixa de verificação Aceder ao ponto final principal através do respetivo endereço IP externo.
A utilização desta opção define o nível de acesso para o plano de controlo como "Acesso ao ponto final público ativado, redes autorizadas ativadas". Isto oferece acesso restrito ao plano de controlo a partir de redes autorizadas. Por predefinição, não são especificados endereços IP de origem. Pode adicionar redes autorizadas ao cluster.
Para desativar o acesso ao ponto final público a partir de redes autorizadas, desmarque a caixa de verificação Aceder ao ponto final principal através do respetivo endereço IP externo.
A utilização desta opção define o nível de acesso do painel de controlo como "Acesso ao ponto final público desativado". Isto impede todo o acesso à Internet ao plano de controlo.
Na secção IP privado do servidor Web, especifique um intervalo de IP para a instância do servidor Web do Airflow.
Na secção IP privado do Cloud SQL, especifique um intervalo de IP para a instância do Cloud SQL.
gcloud
Certifique-se de que a sua rede está configurada para o tipo de ambiente que quer criar.
Quando cria um ambiente, os seguintes argumentos controlam os parâmetros de rede. Se omitir um parâmetro, é usado o valor predefinido.
--enable-private-environmentativa um ambiente de IP privado.--enable-ip-aliasativa o modo nativo da VPC através de endereços IP de alias.Este parâmetro é obrigatório quando usa
--enable-private-environmentou quando configura intervalos secundários para agrupamentos e serviços.--networkespecifica o ID da sua rede de VPC.--subnetworkespecifica o ID da sub-rede de VPC.--cluster-secondary-range-nameou--cluster-ipv4-cidrconfigura o intervalo secundário para agrupamentos.--services-secondary-range-nameou--services-ipv4-cidrpara configurar o intervalo secundário para serviços.--master-ipv4-cidrespecifica um intervalo para o plano de controlo do GKE.
--web-server-ipv4-cidrespecifica um intervalo para a instância do servidor Web do Airflow.--cloud-sql-ipv4-cidrespecifica um intervalo para a instância do Cloud SQL.
--enable-private-endpointcontrola o nível de acesso para o plano de controlo do GKE. O plano de controlo tem dois pontos finais. Um ponto final é privado, para utilização por nós de cluster e VMs. Outro ponto final é público. Pode especificar o nível de acesso para o ponto final público:Para ativar o acesso ao ponto final público a partir de redes autorizadas, omita o argumento
--enable-private-endpoint.A utilização desta opção define o nível de acesso para o plano de controlo como "Acesso ao ponto final público ativado, redes autorizadas ativadas". Isto oferece acesso restrito ao plano de controlo a partir de redes autorizadas. Por predefinição, não são especificados endereços IP de origem. Pode adicionar redes autorizadas ao cluster.
Para desativar o acesso ao ponto final público a partir de redes autorizadas, especifique o argumento
--enable-private-endpoint.A utilização desta opção define o nível de acesso do painel de controlo como "Acesso ao ponto final público desativado". Isto impede todo o acesso à Internet ao plano de controlo.
Os argumentos
--enable-master-authorized-networkse--master-authorized-networksconfiguram redes autorizadas para o seu ambiente.--enable-privately-used-public-ipsconfigura endereços IP públicos usados de forma privada para o seu ambiente.--enable-ip-masq-agentativa o agente de mascaramento de IP.
Exemplo (ambiente de IP privado )
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--enable-private-environment \
--enable-ip-alias \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
--cluster-ipv4-cidr PODS_RANGE \
--services-ipv4-cidr SERVICES_RANGE \
--master-ipv4-cidr CONTROL_PLANE_RANGE \
--web-server-ipv4-cidr WEB_SERVER_RANGE \
--cloud-sql-ipv4-cidr SQL_RANGE
Substituição:
NETWORK_IDcom o ID da sua rede VPC.SUBNETWORK_IDcom o ID da sub-rede da VPC.PODS_RANGEcom o intervalo secundário para pods.SERVICES_RANGEcom o intervalo secundário para serviços.CONTROL_PLANE_RANGEcom o intervalo secundário para o plano de controlo do GKE.WEB_SERVER_RANGEcom o intervalo secundário para a instância do servidor Web do Airflow.SQL_RANGEcom o intervalo da instância do Cloud SQL.
Passo 5. (Opcional) Adicione etiquetas de rede
As etiquetas de rede são aplicadas a todas as VMs de nós no cluster do seu ambiente. As etiquetas são usadas para identificar origens ou destinos válidos para firewalls de rede. Cada etiqueta na lista tem de estar em conformidade com a RFC 1035.
Por exemplo, é recomendável adicionar etiquetas de rede se planear restringir o tráfego para um ambiente de IP privado com regras de firewall.
Consola
Na página Criar ambiente:
- Localize a secção Configuração do nó.
- No campo Etiquetas, especifique etiquetas de instância para VMs de nós.
gcloud
Quando cria um ambiente, os seguintes argumentos controlam as etiquetas de rede:
--tagsespecifica uma lista separada por vírgulas de etiquetas de rede aplicadas a todas as VMs de nós.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--tags TAGS
Substituição:
TAGScom uma lista de etiquetas de rede separadas por vírgulas.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--tags group1,production
API
Quando cria um ambiente, no recurso Environment > EnvironmentConfig, especifique as etiquetas de rede para o seu ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"tags": [
"TAG"
],
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substituição:
TAGcom uma etiqueta 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"
],
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Quando cria um ambiente, os seguintes campos definem as etiquetas de rede para o seu ambiente:
- O campo
tagsno bloconode_configespecifica uma lista separada por vírgulas de etiquetas 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"]
service_account = "SERVICE_ACCOUNT"
}
}
}
Substituição:
TAGScom uma lista de etiquetas de rede separadas por vírgulas.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
node_config {
tags = ["group1","production"]
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Passo 6: (Opcional) Configure o acesso à rede do servidor Web
Os parâmetros de acesso do servidor Web do Airflow não dependem do tipo do seu ambiente. Em alternativa, pode configurar o acesso ao servidor Web separadamente. Por exemplo, um ambiente de IP privado pode continuar a ter a IU do Airflow acessível a partir da Internet.
Não pode configurar os intervalos de IPs permitidos com endereços IP privados.
Consola
Na página Criar ambiente, na secção Configuração do servidor Web:
Para conceder acesso ao servidor Web do Airflow a partir de todos os endereços IP, selecione Permitir acesso a partir de todos os endereços IP.
Para restringir o acesso apenas a intervalos de IP específicos, selecione Permitir acesso apenas a partir de endereços IP específicos. No campo Intervalo de IPs, especifique um intervalo de IPs na notação CIDR. No campo Descrição, especifique uma descrição opcional para este intervalo. Se quiser especificar mais do que um intervalo, clique em Adicionar intervalo de IPs.
Para proibir o acesso a todos os endereços IP, selecione Permitir acesso apenas a endereços IP específicos e clique em Eliminar item junto à entrada de intervalo vazia.
gcloud
Quando cria um ambiente, os seguintes argumentos controlam o nível de acesso do servidor Web:
O
--web-server-allow-allfornece acesso ao Airflow a partir de todos os endereços IP. Esta é a opção predefinida.O
--web-server-allow-iprestringe o acesso apenas a intervalos de IP de origem específicos. Para especificar vários intervalos de IP, use este argumento várias vezes.--web-server-deny-allproíbe o acesso para todos os endereços IP.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Substituição:
WS_IP_RANGEcom o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.WS_RANGE_DESCRIPTIONcom a descrição do intervalo de IP.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--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
Quando cria um ambiente, no recurso Environment > EnvironmentConfig, especifique os parâmetros de acesso do servidor Web.
Para conceder acesso ao servidor Web do Airflow a partir de todos os endereços IP, omita
webServerNetworkAccessControl.Para restringir o acesso apenas a intervalos de IP específicos, especifique um ou mais intervalos em
allowedIpRanges.Para proibir o acesso a todos os endereços IP, adicione
allowedIpRangese torne-a numa lista vazia. Não especifique intervalos de IP no mesmo.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substituição:
WS_IP_RANGEcom o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.WS_RANGE_DESCRIPTIONcom a 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"
}
]
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Quando cria um ambiente, o bloco allowed_ip_range no bloco web_server_network_access_control contém intervalos de IP que podem aceder ao servidor 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"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substituição:
WS_IP_RANGEcom o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.WS_RANGE_DESCRIPTIONcom a 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"
}
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
Passo 7. (Opcional) Especifique substituições da configuração do Airflow e variáveis de ambiente
Pode configurar substituições da configuração do Airflow e variáveis de ambiente quando cria um ambiente. Em alternativa, pode fazê-lo mais tarde, depois de criar o ambiente.
Algumas opções de configuração do Airflow estão bloqueadas e não pode substituí-las.
Para ver a lista de opções de configuração do Airflow disponíveis, consulte a referência de configuração do Airflow 2 e do Airflow 1.10.*
Para especificar substituições de configuração do Airflow e variáveis de ambiente:
Consola
Na página Criar ambiente:
Expanda o item Rede, substituições de configuração do Airflow e funcionalidades adicionais.
Na secção Variáveis de ambiente, clique em Adicionar variável de ambiente.
Introduza o Nome e o Valor da variável de ambiente.
Na secção Substituições da configuração do Airflow, clique em Adicionar substituição da configuração do Airflow.
Introduza a Secção, a Chave e o Valor para substituir a opção de configuração.
Por exemplo:
Secção Chave Valor webserverdag_orientationTB
gcloud
Quando cria um ambiente, os seguintes argumentos controlam as variáveis de ambiente e as substituições da configuração do Airflow:
--env-variablesespecifica uma lista de variáveis de ambiente separadas por vírgulas.Os nomes das variáveis podem conter letras maiúsculas e minúsculas, dígitos e sublinhados, mas não podem começar por um dígito.
--airflow-configsespecifica uma lista de chaves e valores separados por vírgulas para substituições da configuração do Airflow.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Substituição:
ENV_VARScom uma lista de paresNAME=VALUEseparados por vírgulas para variáveis de ambiente.CONFIG_OVERRIDEScom uma lista de paresSECTION-KEY=VALUEseparados por vírgulas para substituições de configuração. Separe o nome da secção de configuração com o símbolo-, seguido do nome da chave. Por exemplo:core-dags_are_paused_at_creation.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--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
Quando cria um ambiente, no recurso Environment > EnvironmentConfig, especifique variáveis de ambiente e substituições da 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",
}
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substituição:
SECTIONcom a secção no ficheiro de configuração onde se encontra a opção de configuração do Airflow.KEYcom o nome da opção de configuração do Airflow.OVERRIDE_VALUEcom um valor da opção de configuração do Airflow.VAR_NAMEcom o nome da variável de ambiente.VAR_VALUEcom o 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"
}
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Quando cria um ambiente, os seguintes blocos controlam as variáveis de ambiente e as substituições de configuração do Airflow:
O bloco
env_variablesno blocosoftware_configespecifica 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 por um dígito.
O bloco
airflow_config_overridesno blocosoftware_configespecifica as substituições da 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"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substituição:
SECTIONcom a secção no ficheiro de configuração onde se encontra a opção de configuração do Airflow.KEYcom o nome da opção de configuração do Airflow.OVERRIDE_VALUEcom um valor da opção de configuração do Airflow.VAR_NAMEcom o nome da variável de ambiente.VAR_VALUEcom o 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"
}
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Passo 8. (Opcional) Especifique períodos de manutenção
Por predefinição, os ambientes do Cloud Composer 1 não têm janelas de manutenção definidas se os criar através da Google Cloud consola, da API ou do Terraform. Recomendamos que especifique janelas de manutenção para os seus ambientes novos e existentes.
Se criar o seu ambiente através da CLI gcloud, o ambiente tem janelas de manutenção predefinidas das 00:00:00 às 04:00:00 (GMT) às sextas-feiras, sábados e domingos todas as semanas.
Para especificar períodos de manutenção personalizados para o seu ambiente:
Consola
Na página Criar ambiente:
Expanda o item Rede, substituições de configuração do Airflow e funcionalidades adicionais.
Na secção Períodos de manutenção, selecione a caixa de verificação Definir hora personalizada para períodos de manutenção.
Na lista pendente Fuso horário, escolha um fuso horário para as janelas de manutenção.
Defina a Hora de início, os Dias e a Duração, para que o tempo combinado da programação especificada seja, pelo menos, de 12 horas num período contínuo de 7 dias. Por exemplo, um período de 4 horas todas as segundas-feiras, quartas-feiras e sextas-feiras oferece a quantidade de tempo necessária.
gcloud
Os argumentos seguintes definem os parâmetros das janelas de manutenção:
--maintenance-window-startdefine a hora de início de um período de manutenção.--maintenance-window-enddefine a hora de fim de um período de manutenção.--maintenance-window-recurrencedefine a recorrência do período de manutenção.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Substituição:
ENVIRONMENT_NAMEcom o nome do ambiente.DATETIME_STARTcom a data e a hora de início no formato de introdução de data/hora. Só é usada a hora especificada do dia. A data especificada é ignorada.DATETIME_ENDcom a data e a hora de fim no formato de introdução de data/hora. Só é usada a hora especificada do dia. A data especificada é ignorada. A data e a hora especificadas têm de ser posteriores à data de início.MAINTENANCE_RECURRENCEcom uma RRULE RFC 5545 para a recorrência das janelas de manutenção. O Cloud Composer suporta dois formatos:O formato
FREQ=DAILYespecifica uma recorrência diária.O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAespecifica uma recorrência nos dias da semana selecionados.
O exemplo seguinte especifica um período de manutenção de 6 horas entre as 01:00 e as 07:00 (UTC) às quartas-feiras, sábados e domingos. A data de 1 de janeiro de 2023 é ignorada.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--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 cria um ambiente, no recurso Environment > EnvironmentConfig, especifique os 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"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substituição:
DATETIME_STARTcom a data e a hora de início no formato de introdução de data/hora. Só é usado o horário especificado do dia. A data especificada é ignorada.DATETIME_ENDcom a data e a hora de fim no formato de introdução de data/hora. Só é usado o horário especificado do dia. A data especificada é ignorada. A data e a hora especificadas têm de ser posteriores à data de início.MAINTENANCE_RECURRENCEcom uma RRULE RFC 5545 para a recorrência dos períodos de manutenção. O Cloud Composer suporta dois formatos:O formato
FREQ=DAILYespecifica uma recorrência diária.O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAespecifica uma recorrência nos dias da semana selecionados.
O exemplo seguinte especifica um período de manutenção de 6 horas entre as 01:00 e as 07:00 (UTC) às quartas-feiras, sábados e domingos. A data de 1 de janeiro de 2023 é 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"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Terraform
O bloco maintenance_window especifica os períodos de manutenção do seu ambiente:
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"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substituição:
DATETIME_STARTcom a data e a hora de início no formato de introdução de data/hora. Só é usado o horário especificado do dia. A data especificada é ignorada.DATETIME_ENDcom a data e a hora de fim no formato de introdução de data/hora. Só é usado o horário especificado do dia. A data especificada é ignorada. A data e a hora especificadas têm de ser posteriores à data de início.MAINTENANCE_RECURRENCEcom uma RRULE RFC 5545 para a recorrência dos períodos de manutenção. O Cloud Composer suporta dois formatos:- O formato
FREQ=DAILYespecifica uma recorrência diária. - O formato
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAespecifica uma recorrência nos dias da semana selecionados.
- O formato
O exemplo seguinte especifica um período de manutenção de 6 horas entre as 01:00 e as 07:00 (UTC) às quartas-feiras, sábados e domingos. A data de 1 de janeiro de 2023 é 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"
}
}
}
Passo 9. (Opcional) Configure a encriptação de dados (CMEK)
Por predefinição, os dados no seu ambiente são encriptados com uma chave fornecida pela Google.
Para usar chaves de encriptação geridas pelo cliente (CMEK) para encriptar dados no seu ambiente, siga as instruções descritas no artigo Usar chaves de encriptação geridas pelo cliente.
Passo 10. (Opcional) Especifique etiquetas de ambiente
Pode atribuir etiquetas aos seus ambientes para discriminá-los nos custos de faturação com base nestas etiquetas.
Consola
Na página Criar ambiente:
Expanda o item Rede, substituições de configuração do Airflow e funcionalidades adicionais.
Na secção Etiquetas, clique em Adicionar etiqueta.
Nos campos Chave e Valor, especifique pares de chaves e valores para as etiquetas de ambiente.
gcloud
Quando cria um ambiente, o argumento --labels especifica uma lista de chaves e valores separados por vírgulas com etiquetas de ambiente.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--labels LABELS
Substituição:
LABELScom uma lista de paresKEY=VALUEseparados por vírgulas para etiquetas de ambiente.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--labels owner=engineering-team,env=production
API
Quando cria um ambiente, no recurso Environment, especifique etiquetas para o seu ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"labels": {
"LABEL_KEY": "LABEL_VALUE"
}
}
Substituição:
LABEL_KEYcom uma chave da etiqueta de ambiente.LABEL_VALUEcom um valor da etiqueta do 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
Quando cria um ambiente, especifique etiquetas 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"
}
}
Substituição:
LABEL_KEYcom uma chave da etiqueta de ambiente.LABEL_VALUEcom um valor da etiqueta do ambiente.
Exemplo:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
labels = {
owner = "engineering-team"
env = "production"
}
}
Passo 11. (Opcional) Configure outros parâmetros
Outros parâmetros incluem:
Zona para os nós do ambiente
Zona do Compute Engine na qual implementar os nós do cluster. Neste parâmetro, pode selecionar uma zona específica na localização do seu ambiente.
Por predefinição, é selecionada automaticamente uma zona aleatória.
âmbitos do OAuth
Os âmbitos do OAuth são um conjunto de âmbitos da API Google a disponibilizar em todas as VMs de nós. Se estiver vazio, a predefinição é
https://www.googleapis.com/auth/cloud-platform.Se especificar âmbitos de OAuth personalizados, inclua
https://www.googleapis.com/auth/cloud-platformna lista de âmbitos especificados.Versão do Python
Se o seu ambiente usar o Airflow 1.10.* e versões anteriores do Airflow, pode fazer com que o seu ambiente use o Python 2. A versão predefinida do Python é o Python 3. Para mais informações sobre o suporte do Python 2 no Cloud Composer, consulte o artigo Versões do Python suportadas.
Consola
Na página Criar ambiente:
Na secção Configuração do nó:
Na lista pendente Zona, selecione uma zona para os nós do seu ambiente.
Não pode alterar a zona mais tarde.
No campo Âmbitos do OAuth, especifique os âmbitos do OAuth para VMs de nós.
Não pode alterar os âmbitos de OAuth posteriormente.
Para especificar vários âmbitos do OAuth, indique uma lista de valores separados por vírgulas. Inclua
https://www.googleapis.com/auth/cloud-platformna lista de âmbitos especificados.No campo Versão do Python, escolha a versão do Python.
Não pode alterar a versão do Python posteriormente.
gcloud
Quando cria um ambiente, os seguintes argumentos controlam vários parâmetros do ambiente:
--zoneespecifica uma zona do Compute Engine para as VMs do seu ambiente.--oauth-scopesespecifica uma lista de âmbitos de OAuth separados por vírgulas. Incluahttps://www.googleapis.com/auth/cloud-platformna lista de âmbitos especificados.--python-versionespecifica a versão do Python.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--zone ZONE \
--oauth-scopes OAUTH_SCOPES \
--python-version PYTHON_VERSION
Substituição:
ZONEcom o nome da zona do Compute Engine.OAUTH_SCOPEScom uma lista de âmbitos do OAuth separados por vírgulas.PYTHON_VERSIONcom a versão do Python (3ou2).
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--zone us-central1-a \
--oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery \
--python-version 3
API
Quando cria um ambiente, no recurso Environment > EnvironmentConfig, especifique parâmetros diversos do seu ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"location": "projects/PROJECT_ID/zones/ZONE",
"oauthScopes": [
"OAUTH_SCOPE"
],
"serviceAccount": "SERVICE_ACCOUNT"
},
"softwareConfig": {
"pythonVersion": "PYTHON_VERSION"
}
}
}
Substituição:
ZONEcom o nome da zona do Compute Engine.OAUTH_SCOPEcom um âmbito do OAuth. Para especificar âmbitos adicionais, adicione o âmbitohttps://www.googleapis.com/auth/cloud-platform, seguido dos itens de âmbito adicionais.PYTHON_VERSIONcom a versão do Python (3ou2).
Exemplo:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"nodeConfig": {
"location": "projects/example-project/zones/us-central1-a",
"oauthScopes": [
"https://www.googleapis.com/auth/cloud-platform",
"https://www.googleapis.com/auth/bigquery"
],
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
},
"softwareConfig": {
"pythonVersion": "3"
}
}
}
Terraform
Quando cria um ambiente, os seguintes campos controlam vários parâmetros do ambiente:
O campo
zoneno bloconode_configespecifica uma zona do Compute Engine para as VMs do seu ambiente.O campo
oauth_scopesno bloconode_configespecifica uma lista de âmbitos do OAuth separados por vírgulas.O campo
python_versionno blocosoftware_configespecifica a versão do Python.
resource "google_composer_environment" "example" {
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
zone = "ZONE"
oauth_scopes = "[OAUTH_SCOPES]"
service_account = "SERVICE_ACCOUNT"
}
software_config {
python_version = "PYTHON_VERSION"
}
}
}
Substituição:
ZONEcom o nome da zona do Compute Engine.OAUTH_SCOPEScom uma lista de âmbitos do OAuth separados por vírgulas.PYTHON_VERSIONcom a versão do Python (3ou2).
Exemplo:
resource "google_composer_environment" "example" {
name = "example-environment"
region = "us-central1"
config {
node_config {
zone = "us-central1-a"
oauth_scopes = "[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery]"
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
software_config {
python_version = "3"
}
}
}
Passo 12. (Opcional) Aplique a utilização da API Beta
Pode fazer com que o seu ambiente use explicitamente a API Cloud Composer beta, mesmo que o seu ambiente não tenha funcionalidades de pré-visualização. Se o fizer, o seu ambiente é criado através do ponto final do serviço v1beta1.
Consola
Na página Criar ambiente:
Expanda o item Rede, substituições de configuração do Airflow e funcionalidades adicionais.
Na secção API beta, selecione a caixa de verificação Impor a utilização da API beta.
gcloud
Crie o seu ambiente com o comando gcloud beta composer.
API
Crie o seu ambiente através do ponto final do serviço v1beta1.
Terraform
O fornecedor do Terraform para o Cloud Composer usa a API beta por predefinição.
O que se segue?
- Resolução de problemas de criação do ambiente
- Configurar a VPC partilhada
- Configurar os VPC Service Controls
- Adicionar e atualizar DAGs
- Aceder à IU do Airflow
- Atualizar e eliminar ambientes
- Acerca das versões do Cloud Composer