Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Nesta página, explicamos como criar um ambiente do Cloud Composer.
- Para mais informações sobre ambientes, consulte Arquitetura de ambiente.
- Para mais informações sobre como criar um ambiente com o Terraform, consulte Criar ambientes (Terraform).
Antes de começar
. Você ainda pode criar ambientes do Cloud Composer 1 usando a Google Cloud CLI, o Terraform e a API se o projeto permitir a criação de novos ambientes do Cloud Composer 1.Ative a API Cloud Composer. Para conferir a lista completa de serviços usados pelo Cloud Composer, consulte Serviços exigidos pelo Cloud Composer.
O tempo aproximado para criar um ambiente é de 25 minutos.
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.createativada.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.
IP particular: há requisitos de peering e de rede específicos para criar um ambiente de IP particular. Para mais informações, consulte Como configurar o IP particular.
VPC compartilhada: você precisa atender a requisitos específicos de rede para usar a VPC compartilhada com o Cloud Composer. Para mais informações, consulte Como configurar a VPC compartilhada.
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. Criar ou escolher uma conta de serviço do ambiente
Ao criar um ambiente, você especifica uma conta de serviço. Essa conta de serviço é chamada de conta de serviço do ambiente. Seu ambiente usa essa conta de serviço para realizar a maioria das operações.
A conta de serviço do ambiente não é uma conta de usuário. Uma conta de serviço é um tipo especial de conta usada por um aplicativo ou uma instância de máquina virtual (VM), não uma pessoa.
Não é possível mudar a conta de serviço do ambiente depois.
Se você ainda não tiver uma conta de serviço para ambientes do Cloud Composer no seu projeto, crie uma.
Consulte Criar ambientes (Terraform) para ver um exemplo estendido de como criar uma conta de serviço para seu ambiente no Terraform.
Para criar uma conta de serviço para seu ambiente:
Crie uma conta de serviço conforme descrito na documentação do Identity and Access Management.
Conceda um papel a ela, conforme descrito na documentação do Identity and Access Management. O papel necessário é Worker do Composer (
composer.worker).Se o ambiente usar restrições de local do recurso ou instalar pacotes do PyPI de um repositório do Artifact Registry ou de um repositório particular, conceda a função Usuário da conta de serviço (
iam.serviceAccountUser) à conta de serviço gerenciado pelo usuário que executa o ambiente em si (o principal e o recurso são a mesma conta de serviço).Para acessar outros recursos no projeto Google Cloud , conceda permissões extras à conta de serviço. O papel Worker do Composer (
composer.worker) fornece esse conjunto de permissões necessárias na maioria dos casos. Adicione permissões extras a essa conta de serviço somente quando for necessário para a operação dos seus DAGs.
Etapa 2. Configuração básica
Nesta etapa, você cria um ambiente do Cloud Composer com parâmetros padrão 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.
Um 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.
Na seção Configuração de nó, na lista suspensa Conta de serviço, selecione uma conta de serviço para seu ambiente.
Se você ainda não tiver uma conta de serviço para seu ambiente, consulte Criar ou escolher uma conta de serviço do ambiente.
gcloud
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION \
--service-account "SERVICE_ACCOUNT"
Substitua:
ENVIRONMENT_NAMEpelo 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.
LOCATIONpela região do ambiente.Um local é a região em que o ambiente está localizado.
SERVICE_ACCOUNTpela 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
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"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substitua:
PROJECT_IDpelo ID do projeto;LOCATIONpela região do ambiente.Um local é a região em que o ambiente está localizado.
ENVIRONMENT_NAMEpelo 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_VERSIONcom o nome de uma imagem do Cloud Composer.SERVICE_ACCOUNTpela 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 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"
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substitua:
ENVIRONMENT_NAMEpelo 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.
LOCATIONpela região do ambiente.Um local é a região em que o ambiente está localizado.
IMAGE_VERSIONcom o nome de uma imagem do Cloud Composer.SERVICE_ACCOUNTpela 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
"
}
}
}
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, forneça o número de nós no cluster do GKE do ambiente e selecione tipos de máquina para componentes do ambiente.
Console
Na página Criar ambiente:
Na seção Configuração do nó:
Insira a Contagem de nós.
A contagem de nós é o número de nós do Google Kubernetes Engine no cluster do ambiente. Por padrão, os ambientes têm três nós.
É possível alterar esse valor depois de criar o ambiente.
Escolha Tipo de máquina para nós.
O tipo de máquina para nós é o tipo de máquina do Compute Engine usado nas instâncias de cluster. Este parâmetro determina o número de CPUs e a quantidade de memória do ambiente. O tipo de máquina padrão é
n1-standard-1.Para alterar esse valor depois de criar o ambiente, é necessário reconfigurar manualmente o cluster de ambiente.
Insira o Tamanho do disco.
O tamanho do disco, em GB, para nós do ambiente. Cada nó no ambiente tem essa quantidade de espaço em disco. Selecione um tamanho de disco maior se você quiser armazenar um grande volume de dados em pastas sincronizadas com as VMs de ambiente. Por exemplo, na pasta
/datado bucket do ambiente.O tamanho mínimo é 30 GB. O tamanho padrão é 100 GB. Não é possível alterar esse parâmetro depois de criar um ambiente.
Escolha o Número de programadores.
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.
Expanda o item Rede, substituições de configuração do Airflow e outros recursos.
Na seção Configuração do Cloud SQL, escolha 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 o banco de dados do Airflow. O tipo de máquina padrão do Cloud SQL é
db-n1-standard-2.Na seção Configuração do servidor da Web, escolha o Tipo de máquina do servidor da Web.
Este parâmetro determina o tipo de máquina para a instância do Compute Engine que executa o servidor da Web do Airflow..
O tipo de máquina do servidor da Web padrão é
composer-n1-webserver-2.
gcloud
Ao criar um ambiente, os seguintes argumentos controlam os parâmetros de escalonamento e desempenho do ambiente:
--node-countespecifica o número de nós no ambiente.A contagem de nós é o número de nós do Google Kubernetes Engine no cluster do ambiente. Por padrão, os ambientes têm três nós.
É possível alterar esse valor depois de criar o ambiente.
--scheduler-countespecifica o número de programadores no seu ambiente.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.
--disk-sizeespecifica o tamanho do disco para as VMs de ambiente.O tamanho do disco, em GB, para nós do ambiente. Cada nó no ambiente tem essa quantidade de espaço em disco. Selecione um tamanho de disco maior se você quiser armazenar um grande volume de dados em pastas sincronizadas com as VMs de ambiente. Por exemplo, na pasta
/datado bucket do ambiente.O tamanho mínimo é 30 GB. O tamanho padrão é 100 GB. Não é possível alterar esse parâmetro depois de criar um ambiente.
--machine-typeespecifica o tipo de máquina para VMs de nó;O tipo de máquina para nós é o tipo de máquina do Compute Engine usado nas instâncias de cluster. Este parâmetro determina o número de CPUs e a quantidade de memória do ambiente. O tipo de máquina padrão é
n1-standard-1.Para alterar esse valor depois de criar o ambiente, é necessário reconfigurar manualmente o cluster de 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 o banco de dados do Airflow. O tipo de máquina padrão do Cloud SQL é
db-n1-standard-2.--web-server-machine-typeespecifica o tipo de máquina para a instância do servidor da Web do Airflow.Este parâmetro determina o tipo de máquina para a instância do Compute Engine que executa o servidor da Web do Airflow..
O tipo de máquina do servidor da Web padrão é
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
Substitua:
NODE_COUNTpelo número de nós;NODE_ZONEpela zona do Compute Engine para as VMs do ambiente.SCHEDULER_COUNTpelo número de programadores.DISK_SIZEpelo tamanho do disco das VMs de ambiente em GB.NODE_MACHINE_TYPEpelo tipo de máquina para VMs de nó;SQL_MACHINE_TYPEpelo tipo de máquina da instância do Cloud SQL;WS_MACHINE_TYPEpelo tipo de máquina para a instância do servidor da 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
Ao criar um ambiente, no recurso Ambiente > EnvironmentConfig, especifique os parâmetros de escalonamento e desempenho 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"
}
}
}
Substitua:
NODE_COUNTpelo número de nós;DISK_SIZEpelo tamanho do disco das VMs de ambiente em GB.NODE_MACHINE_TYPEpelo tipo de máquina para VMs de nó; Esse valor precisa conter uma zona para as VMs do ambiente.SCHEDULER_COUNTpelo número de programadores.SQL_MACHINE_TYPEpelo tipo de máquina para a instância do Cloud SQL;WS_MACHINE_TYPEpelo tipo de máquina para a instância do servidor da 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
Ao criar um ambiente, os seguintes campos controlam os parâmetros de escalonamento e desempenho do ambiente:
node_countno bloconode_configespecifica o número de nós no seu ambiente.A contagem de nós é o número de nós do Google Kubernetes Engine no cluster do ambiente. Por padrão, os ambientes têm três nós.
É possível alterar esse valor depois de criar o ambiente.
disk_size_gbno bloconode_configespecifica o tamanho do disco para as VMs de ambiente.O tamanho do disco, em GB, para nós do ambiente. Cada nó no ambiente tem essa quantidade de espaço em disco. Selecione um tamanho de disco maior se você quiser armazenar um grande volume de dados em pastas sincronizadas com as VMs de ambiente. Por exemplo, na pasta
/datado bucket do ambiente.O tamanho mínimo é 30 GB. O tamanho padrão é 100 GB. Não é possível alterar esse parâmetro depois de criar um ambiente.
machine_typeno bloconode_configespecifica o tipo de máquina para VMs de nós. Ao especificar esse campo, forneça também uma zona do Compute Engine para suas VMs de ambiente no campozone.O tipo de máquina para nós é o tipo de máquina do Compute Engine usado nas instâncias de cluster. Este parâmetro determina o número de CPUs e a quantidade de memória do ambiente. O tipo de máquina padrão é
n1-standard-1.Para alterar esse valor depois de criar o ambiente, é necessário reconfigurar manualmente o cluster de 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 o banco de dados do Airflow. O tipo de máquina padrão do Cloud SQL é
db-n1-standard-2.machine_typeno blocoweb_server_configespecifica o tipo de máquina para a instância do servidor da Web do Airflow.Este parâmetro determina o tipo de máquina para a instância do Compute Engine que executa o servidor da Web do Airflow..
O tipo de máquina do servidor da Web padrão é
composer-n1-webserver-2.O campo
scheduler_countno blocosoftware_configespecifica o número de programadores no seu ambiente. Seu ambiente precisa 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"
}
}
}
Substitua:
NODE_COUNTpelo número de nós;DISK_SIZEpelo tamanho do disco das VMs de ambiente em GB.NODE_MACHINE_TYPEpelo tipo de máquina para VMs de nó;NODE_ZONEpela zona do Compute Engine para as VMs do ambiente.SCHEDULER_COUNTpelo número de programadores.SQL_MACHINE_TYPEpelo tipo de máquina para a instância do Cloud SQL;WS_MACHINE_TYPEpelo tipo de máquina para a instância do servidor da 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"
}
}
}
Etapa 4. (Opcional) Configurar a rede do ambiente
Os parâmetros de rede dependem do tipo de ambiente que você quer criar:
Ambiente de IP público. Use os parâmetros de rede padrão.
Ambiente de IP particular (peering de VPC). Nessa configuração, seu ambiente usa peerings de VPC para conectividade.
Configure seu ambiente de IP particular:
- Configure a rede do projeto para ambientes de IP privado.
- Especifique outros parâmetros para seu ambiente de IP particular, conforme descrito mais adiante nesta seção.
Para um ambiente de IP particular com peerings de VPC, você precisa saber:
- O ID da rede VPC
- O ID da sub-rede VPC
Dois intervalos de IP secundários na sub-rede VPC:
- Intervalo de IP secundário para pods
- Intervalo de IP secundário para serviços
Intervalos de IP para os componentes do ambiente:
- Intervalo de IP para o plano de controle do GKE.
- Intervalo de IP do servidor da Web.
- Intervalo de IP para a instância do Cloud SQL.
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 na página Como configurar a VPC compartilhada.
Para um ambiente de VPC compartilhada, você precisa saber:
- O ID da rede VPC do projeto host
O ID da sub-rede VPC do projeto host
Dois intervalos de IP secundários na sub-rede VPC do projeto host:
- Intervalo de IP secundário para pods
- Intervalo de IP secundário para serviços
Ao criar um ambiente de VPC compartilhada de IP público, ainda é preciso especificar a rede VPC do projeto host, a sub-rede e os intervalos de IP secundários para pods e serviços.
Para criar um ambiente VPC SC, crie um perímetro de serviço e, em seguida, crie ambientes de IP particular nesse perímetro. Siga as instruções descritas em Como configurar o VPC Service Controls.
Outras opções de rede para ambientes são:
- Endereços IP públicos de uso particular. Se você quiser usar mais endereços IP, seu ambiente poderá usar de maneira particular determinados intervalos de endereços IP públicos como intervalos de endereços IP de sub-rede internos para pods e serviços.
- Redes autorizadas. Se você quiser acessar o plano de controle do seu ambiente de IP particular usando HTTPS, use redes autorizadas para especificar intervalos CIDR que podem fazer isso.
- Agente de mascaramento de IP. Ao usar ambientes com o agente de mascaramento de IP, é possível usar conversões de endereço IP de muitos para um nas configurações de rede do ambiente. Para mais informações sobre a criação de ambientes com o agente de mascaramento de IP, consulte Ativar o agente de mascaramento de IP.
Console
Para criar um ambiente de IP particular:
Verifique se a rede está configurada para o tipo de ambiente que você quer criar.
Expanda o item Rede, substituições de configuração do Airflow e outros recursos.
Na seção Configuração de rede, marque a caixa de seleção Ativar cluster nativo de VPC (usando o IP de alias).
Na lista suspensa Rede, selecione o ID da rede VPC.
Na lista suspensa Sub-rede, selecione o ID da sub-rede VPC.
Na seção Alocação de endereços IP do pod, especifique o intervalo de IP secundário dos pods. É possível usar um intervalo secundário existente na sua rede VPC ou especificar um novo na notação CIDR.
Na seção Alocação de endereços IP de serviço, especifique o intervalo de IP secundário para os serviços. É possível usar um intervalo secundário existente na sua rede VPC ou especificar um novo na notação CIDR.
Na seção IP privado, marque a caixa de seleção Ativar IP privado.
Na seção IP privado do mestre do cluster do GKE, especifique um intervalo de IP para o plano de controle do GKE:
Para usar o intervalo de IP padrão na região em que o ambiente está localizado, selecione Intervalo de IP padrão.
Para especificar um intervalo de IP personalizado, selecione Intervalo de IP personalizado e insira um intervalo na notação CIDR no campo IP particular do mestre do cluster do GKE.
Selecione o acesso de nível para o plano de controle do GKE. O plano de controle tem dois endpoints. Um endpoint é particular, para uso por nós de cluster e VMs. Outro endpoint é público. É possível especificar o nível de acesso ao endpoint público:
Para ativar o acesso ao endpoint público de redes autorizadas, marque a caixa de seleção Acessar o endpoint mestre usando o endereço IP externo.
Com essa opção, o nível de acesso do plano de controle é definido como "Acesso ao endpoint público ativado, redes autorizadas ativadas". Isso fornece acesso restrito ao plano de controle a partir de redes autorizadas. Por padrão, nenhum endereço IP de origem é especificado. É possível adicionar redes autorizadas ao cluster.
Para desativar o acesso ao endpoint público de redes autorizadas, desmarque a caixa de seleção Acessar o endpoint mestre usando o endereço IP externo.
Com essa opção, o nível de acesso do plano de controle é definido como "Acesso ao endpoint público desativado". Isso impede todo o acesso à Internet ao plano de controle.
Na seção IP privado do servidor da Web, especifique um intervalo de IP para a instância do servidor da Web do Airflow.
Na seção IP privado do Cloud SQL, especifique um intervalo de IP para a instância do Cloud SQL.
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-environmentativa um ambiente de IP particular.--enable-ip-aliasativa o Nativo de VPC usando endereços IP de alias.Esse parâmetro é obrigatório ao usar
--enable-private-environmentou ao configurar intervalos secundários para pods e serviços.--networkespecifica o ID da rede VPC.--subnetworkespecifica o ID da sub-rede VPC.--cluster-secondary-range-nameou--cluster-ipv4-cidrconfigura o intervalo secundário para pods.--services-secondary-range-nameou--services-ipv4-cidrpara configurar o intervalo secundário para serviços.--master-ipv4-cidrespecifica um intervalo para o plano de controle do GKE.
--web-server-ipv4-cidrespecifica um intervalo da instância do servidor da Web do Airflow.--cloud-sql-ipv4-cidrespecifica um intervalo da instância do Cloud SQL.
--enable-private-endpointcontrola o acesso de nível do plano de controle do GKE. O plano de controle tem dois endpoints. Um endpoint é particular, para uso por nós de cluster e VMs. Outro endpoint é público. É possível especificar o nível de acesso ao endpoint público:Para ativar o acesso ao endpoint público de redes autorizadas, omita o argumento
--enable-private-endpoint.Com essa opção, o nível de acesso do plano de controle é definido como "Acesso ao endpoint público ativado, redes autorizadas ativadas". Isso fornece acesso restrito ao plano de controle a partir de redes autorizadas. Por padrão, nenhum endereço IP de origem é especificado. É possível adicionar redes autorizadas ao cluster.
Para desativar o acesso ao endpoint público de redes autorizadas, especifique o argumento
--enable-private-endpoint.Com essa opção, o nível de acesso do plano de controle é definido como "Acesso ao endpoint público desativado". Isso impede todo o acesso à Internet ao plano de controle.
Os argumentos
--enable-master-authorized-networkse--master-authorized-networksconfiguram redes autorizadas para seu ambiente.O
--enable-privately-used-public-ipsconfigura endereços IP públicos usados de maneira particular para seu ambiente.--enable-ip-masq-agentativa o agente de mascaramento de IP.
Exemplo (ambiente de IP particular):
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
Substitua:
NETWORK_IDpelo ID de rede VPC.SUBNETWORK_IDpelo ID de sub-rede VPC.PODS_RANGEpelo intervalo secundário de pods.SERVICES_RANGEpelo intervalo secundário de serviços.CONTROL_PLANE_RANGEpelo intervalo secundário do plano de controle do GKE.WEB_SERVER_RANGEpelo intervalo secundário da instância do servidor da Web do Airflow.SQL_RANGEpelo intervalo da instância do Cloud SQL.
Etapa 5. (Opcional) Adicionar tags de rede
As tags de rede são aplicadas a todas as VMs de nós no cluster do seu ambiente. As tags são usadas para identificar origens ou destinos válidos em firewalls de rede. Cada tag na lista precisa estar em conformidade com o RFC 1035.
Por exemplo, talvez você queira adicionar tags de rede se planeja restringir o tráfego de um ambiente de IP privado com regras de firewall.
Console
Na página Criar ambiente:
- Localize a seção Configuração do nó.
- No campo Tags, especifique as tags de instância para VMs de nó.
gcloud
Ao criar um ambiente, os argumentos a seguir controlam as tags de rede:
--tagsespecifica uma lista separada por vírgulas de tags 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
Substitua:
TAGScom uma lista separada por vírgulas de tags de rede.
Exemplo:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-1.20.12-airflow-1.10.15 \
--tags group1,production
API
Ao criar um ambiente, no recurso Ambiente > EnvironmentConfig, especifique tags de rede para seu ambiente.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"tags": [
"TAG"
],
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substitua:
TAGcom 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"
],
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Ao criar um ambiente, os campos a seguir definem tags de rede para o ambiente:
- O campo
tagsno bloconode_configespecifica 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"]
service_account = "SERVICE_ACCOUNT"
}
}
}
Substitua:
TAGScom 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"]
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Etapa 6. (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 do servidor da Web:
Para conceder acesso ao servidor da Web do Airflow de todos os endereços IP, selecione Permitir 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. Para 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-allfornece acesso ao Airflow de todos os endereços IP. Essa é a opção padrão.--web-server-allow-iprestringe 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-allproíbe o acesso a 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
Substitua:
WS_IP_RANGEpelo intervalo de IP, na notação CIDR, que pode acessar a IU do Airflow.WS_RANGE_DESCRIPTIONpela 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
Ao criar um ambiente, no recurso Ambiente > EnvironmentConfig, especifique parâmetros de acesso ao servidor da Web.
Para fornecer acesso ao servidor da 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 de todos os endereços IP, adicione
allowedIpRangese 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"
}
]
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substitua:
WS_IP_RANGEpelo intervalo de IP, na notação CIDR, que pode acessar a IU do Airflow.WS_RANGE_DESCRIPTIONpela 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 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"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substitua:
WS_IP_RANGEpelo intervalo de IP, na notação CIDR, que pode acessar a IU do Airflow.WS_RANGE_DESCRIPTIONpela 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
"
}
}
Etapa 7: (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 do Airflow disponíveis, consulte a Referência de configuração do 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:
Expanda o item Rede, substituições de configuração do Airflow e outros recursos.
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 webserverdag_orientationTB
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-variablesespecifica 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-configsespecifica 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-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Substitua:
ENV_VARSpor uma lista de paresNAME=VALUEseparados por vírgulas para variáveis de ambiente.CONFIG_OVERRIDESpor uma lista de paresSECTION-KEY=VALUEseparados 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-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
Ao criar um ambiente, no recurso 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",
}
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Substitua:
SECTIONpela seção no arquivo de configuração em que a opção de configuração do Airflow está localizada;KEYpelo nome da opção de configuração do Airflow;OVERRIDE_VALUEpor um valor da opção de configuração do Airflow;VAR_NAMEpelo nome da variável de ambiente;VAR_VALUEpelo 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 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_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 com um dígito.
O bloco
airflow_config_overridesno blocosoftware_configespecifica 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"
}
}
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Substitua:
SECTIONpela seção no arquivo de configuração em que a opção de configuração do Airflow está localizada;KEYpelo nome da opção de configuração do Airflow;OVERRIDE_VALUEpor um valor da opção de configuração do Airflow;VAR_NAMEpelo nome da variável de ambiente;VAR_VALUEpelo 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
"
}
}
}
Etapa 8: (Opcional) Especificar janelas de manutenção
Por padrão, os ambientes do Cloud Composer 1 não têm janelas de manutenção definidas se forem criados usando o console, a API ou o Terraform doGoogle Cloud . Recomendamos especificar janelas de manutenção para ambientes novos e atuais.
Se você criar o ambiente usando a CLI gcloud, ele terá janelas de manutenção padrão das 00:00:00 às 04:00:00 (GMT) na sexta, no sábado e no domingo de todas as semanas.
Para especificar janelas de manutenção personalizadas para seu ambiente:
Console
Na página Criar ambiente:
Expanda o item Rede, substituições de configuração do Airflow e outros recursos.
Na seção Janelas de manutenção, marque a caixa de seleção Definir horário personalizado para 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-startdefine o horário de início de uma janela de manutenção.--maintenance-window-enddefine o horário de término de uma janela de manutenção.--maintenance-window-recurrencedefine a recorrência da janela 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'
Substitua:
ENVIRONMENT_NAMEpelo nome do ambiente;DATETIME_STARTpela 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_ENDpela 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_RECURRENCEpor um RFC 5545 RRULE para recorrência de janelas de manutenção. O Cloud Composer é compatível com 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 a seguir especifica uma janela de manutenção de seis horas entre 01:00 e 07:00 (UTC) às quartas, 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
Ao criar um ambiente, no recurso Ambiente > 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"
}
}
}
Substitua:
DATETIME_STARTpela 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_ENDpela 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_RECURRENCEpor um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Cloud Composer é compatível com 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 a seguir especifica uma janela de manutenção de seis horas entre 01:00 e 07:00 (UTC) às quartas, 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 as janelas 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"
}
}
}
Substitua:
DATETIME_STARTpela 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_ENDpela 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_RECURRENCEpor um RFC 5545 RRULE para a recorrência de janelas de manutenção. O Cloud Composer é compatível com 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 a seguir especifica uma janela de manutenção de seis horas entre 01:00 e 07:00 (UTC) às quartas, 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"
}
}
}
Etapa 9: (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 10: (Opcional) Especificar identificadores de ambiente
É possível atribuir identificadores aos ambientes para dividir os custos de faturamento com base nesses identificadores.
Console
Na página Criar ambiente:
Expanda o item Rede, substituições de configuração do Airflow e outros recursos.
Na seção Marcadores, clique em Adicionar marcador.
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-1.20.12-airflow-1.10.15 \
--service-account "SERVICE_ACCOUNT" \
--labels LABELS
Substitua:
LABELSpor uma lista de paresKEY=VALUEseparados por vírgulas para identificadores 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
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_KEYpor uma chave do identificador do ambiente.LABEL_VALUEpor 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_KEYpor uma chave do identificador do ambiente.LABEL_VALUEpor 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"
}
}
Etapa 11: (Opcional) Configurar outros parâmetros
Outros parâmetros incluem:
Zona dos nós do ambiente
Zona do Compute Engine em que os nós do cluster serão implantados. Nesse parâmetro, você pode selecionar uma zona específica no local do seu ambiente.
Por padrão, uma zona aleatória é selecionada automaticamente.
Escopos do OAuth
Um escopo do OAuth é um conjunto de escopos da API do Google a serem disponibilizados em todas as VMs do nó. Se estiver vazio, o padrão será
https://www.googleapis.com/auth/cloud-platform.Se você especificar escopos OAuth personalizados, inclua
https://www.googleapis.com/auth/cloud-platformna lista de escopos especificados.Versão do Python
Se seu ambiente usa o Airflow 1.10.* e versões anteriores, é possível fazer com que o ambiente use o Python 2. A versão padrão do Python é Python 3. Para mais informações sobre o suporte ao Python 2 no Cloud Composer, consulte Versões compatíveis do Python.
Console
Na página Criar ambiente:
Na seção Configuração do nó:
Na lista suspensa Zona, selecione uma zona para os nós do ambiente.
Não é possível mudar a zona depois.
No campo Escopos OAuth, especifique os escopos OAuth para VMs de nós.
Não é possível mudar os escopos do OAuth depois.
Para especificar vários escopos OAuth, forneça uma lista de valores separados por vírgula. Inclua
https://www.googleapis.com/auth/cloud-platformna lista de escopos especificados.No campo Python version, escolha a versão do Python.
Não será possível mudar a versão do Python depois.
gcloud
Quando você cria um ambiente, os argumentos a seguir controlam parâmetros diversos do seu ambiente:
--zoneespecifica uma zona do Compute Engine para suas VMs;--oauth-scopesespecifica uma lista separada por vírgulas de escopos do OAuth. Incluahttps://www.googleapis.com/auth/cloud-platformna lista de escopos 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
Substitua:
ZONEpelo nome da zona do Compute Engine.OAUTH_SCOPESé uma lista separada por vírgulas de escopos do OAuth.PYTHON_VERSIONpela 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
Ao criar um ambiente, no recurso Ambiente > EnvironmentConfig, especifique parâmetros variados do 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"
}
}
}
Substitua:
ZONEpelo nome da zona do Compute Engine.OAUTH_SCOPEpor um escopo do OAuth; Para especificar escopos adicionais, adicione o escopohttps://www.googleapis.com/auth/cloud-platform, seguido pelos itens extras do escopo.PYTHON_VERSIONpela 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 você cria um ambiente, os campos a seguir controlam diversos parâmetros do ambiente:
O campo
zoneno bloconode_configespecifica uma zona do Compute Engine para suas VMs de ambiente.O campo
oauth_scopesno bloconode_configespecifica uma lista separada por vírgulas de escopos do OAuth.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"
}
}
}
Substitua:
ZONEpelo nome da zona do Compute Engine.OAUTH_SCOPESé uma lista separada por vírgulas de escopos do OAuth.PYTHON_VERSIONpela 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"
}
}
}
Etapa 12: (Opcional) Aplicar o uso da API Beta
É possível fazer explicitamente com que o ambiente use a API Cloud Composer Beta, mesmo que o ambiente não tenha recursos de visualização. Se você fizer
isso, seu ambiente será criado usando o endpoint do serviço v1beta1.
Console
Na página Criar ambiente:
Expanda o item Rede, substituições de configuração do Airflow e outros recursos.
Na seção API Beta, marque a caixa de seleção Aplicar o uso da API Beta.
gcloud
Crie seu ambiente usando o comando gcloud beta composer.
API
Crie seu ambiente usando o endpoint do serviço v1beta1.
Terraform
Por padrão, o provedor do Terraform para o Cloud Composer usa a API Beta.
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