Crie ambientes do Cloud Composer

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Esta página explica como criar um ambiente do Cloud Composer.

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.create ativada.

    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.

  • Pode reparar em entradas de metadados do Compute Engine para os clusters do GKE que pertencem a ambientes no seu projeto. Durante a criação e as atualizações do cluster do GKE, o Google Kubernetes Engine adiciona automaticamente entradas de metadados ao nível do projeto (google_compute_project_metadata) para acompanhar a utilização do intervalo de endereços IP secundários. Não modifique nem remova estas entradas. O Google Kubernetes Engine gere-os automaticamente.

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 (VM) 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 expandido 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:

  1. Crie uma nova conta de serviço conforme descrito na documentação de gestão de identidade e de acesso.

  2. 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).

  3. 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).

  4. 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

  1. Na Google Cloud consola, aceda à página Criar ambiente.

    Aceda a Criar ambiente

  2. 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.

  3. Na lista pendente Localização, escolha uma localização para o seu ambiente.

    Uma localização é a região onde o ambiente está localizado.

  4. Na lista pendente Versão da imagem, selecione uma imagem do Cloud Composer com a versão necessária do Airflow.

  5. 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"

Substituir:

  • ENVIRONMENT_NAME com 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.

  • LOCATION com a região para o ambiente.

    Uma localização é a região onde o ambiente está localizado.

  • SERVICE_ACCOUNT com a conta de serviço do seu ambiente.

  • IMAGE_VERSION com o nome de uma imagem do Cloud Composer.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --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"
    }
  }
}

Substituir:

  • PROJECT_ID com o ID do projeto.

  • LOCATION com a região para o ambiente.

    Uma localização é a região onde o ambiente está localizado.

  • ENVIRONMENT_NAME com 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_VERSION com o nome de uma imagem do Cloud Composer.

  • SERVICE_ACCOUNT com 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-2.13.9-airflow-2.10.5"
    },
    "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"
    }
  }
}

Substituir:

  • ENVIRONMENT_NAME com 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.

  • LOCATION com a região para o ambiente.

    Uma localização é a região onde o ambiente está localizado.

  • IMAGE_VERSION com o nome de uma imagem do Cloud Composer.

  • SERVICE_ACCOUNT com 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-2.13.9-airflow-2.10.5"
    }
    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Passo 3. Conceda as autorizações necessárias à conta de serviço do Cloud Composer

Quando ativa a API Cloud Composer no seu projeto, a conta do agente do serviço Composer é criada no seu projeto. O Cloud Composer usa esta conta para realizar operações no seu Google Cloud projeto.

A função Extensão do agente de serviço da API Cloud Composer v2 fornece autorizações adicionais à conta do agente de serviço do Cloud Composer. Esta função não é concedida automaticamente. Tem de concedê-la manualmente.

Consola

Quando cria um ambiente no seu projeto, se o agente do serviço do Cloud Composer não tiver as autorizações necessárias na conta de serviço do ambiente, é apresentada uma secção Conceda as autorizações necessárias à conta de serviço do Cloud Composer.

Adiciona a conta do agente de serviço do Cloud Composer como um novo principal na conta de serviço do seu ambiente e concede-lhe a função Extensão do agente de serviço da API Cloud Composer v2.

Confirme que usa a conta de serviço pretendida para o seu ambiente e clique em Conceder.

gcloud

Adiciona a conta do agente de serviço do Cloud Composer como um novo principal na conta de serviço do seu ambiente e concede-lhe a função Extensão do agente de serviço da API Cloud Composer v2.

gcloud iam service-accounts add-iam-policy-binding \
    SERVICE_ACCOUNT \
    --member serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
    --role roles/composer.ServiceAgentV2Ext

Substituir:

  • SERVICE_ACCOUNT com a conta de serviço do seu ambiente.
  • PROJECT_NUMBER com o número do projeto.

Exemplo:

gcloud iam service-accounts add-iam-policy-binding \
    example-account@example-project.iam.gserviceaccount.com \
    --member serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com \
    --role roles/composer.ServiceAgentV2Ext

API

Para conceder a função, tem de modificar a política de autorização existente usando o padrão de leitura-modificação-escrita:

  1. Leia a política de autorização existente para a conta de serviço do seu ambiente.
  2. Modifique-o para incluir a função roles/composer.ServiceAgentV2Ext para o agente do serviço Cloud Composer.
  3. Reescrever a política de permissão existente.

Para mais informações, consulte o artigo Controlar o acesso através de programação.

{
  "role": "roles/composer.ServiceAgentV2Ext",
  "members": [
    "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
  ]
}

Substituir:

Exemplo:

{
  "role": "roles/composer.ServiceAgentV2Ext",
  "members": [
    "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
  ]
}

Terraform

Adicione uma nova associação de funções à política de autorização da conta de serviço do seu ambiente.

Adiciona a conta do agente de serviço do Cloud Composer como um novo principal na conta de serviço do seu ambiente e concede-lhe a função Extensão do agente de serviço da API Cloud Composer v2.

Se não estiver a usar o Terraform para definir a política de autorização da conta de serviço do seu ambiente, NÃO use o exemplo seguinte. Em alternativa, adicione esta associação através de outros métodos.

resource "google_service_account_iam_member" "custom_service_account" {
  provider = google-beta
  service_account_id = "SERVICE_ACCOUNT"
  role = "roles/composer.ServiceAgentV2Ext"
  member = "serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
}

Substituir:

  • SERVICE_ACCOUNT com a conta de serviço do seu ambiente.
  • PROJECT_NUMBER com o número do projeto.

Exemplo:

resource "google_service_account_iam_member" "custom_service_account" {
  provider = google-beta
  service_account_id = "example-account@example-project.iam.gserviceaccount.com"
  role = "roles/composer.ServiceAgentV2Ext"
  member = "serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
}

Passo 4. (Opcional) Configure a escala do ambiente e os parâmetros de desempenho

Para especificar a configuração de escala e desempenho do seu ambiente, selecione o tamanho do ambiente e a configuração das cargas de trabalho.

Pode alterar todos os parâmetros de desempenho e escala depois de criar um ambiente.

Os seguintes parâmetros controlam a escala e o desempenho:

  • Tamanho do ambiente. Controla os parâmetros de desempenho da infraestrutura do Cloud Composer gerido, que inclui a base de dados do Airflow. Considere selecionar um tamanho do ambiente maior se quiser executar um grande número de DAGs e tarefas com um desempenho de infraestrutura mais elevado. Por exemplo, o tamanho maior do ambiente aumenta a quantidade de entradas do registo de tarefas do Airflow que o seu ambiente pode processar com um atraso mínimo.

  • Configuração das cargas de trabalho. Controla a escala e o desempenho dos componentes do Airflow que são executados num cluster do GKE do seu ambiente.

    • Programador do Airflow. Analisa ficheiros de definição de DAG, agenda execuções de DAG com base no intervalo de agendamento e coloca tarefas em fila para execução por parte dos trabalhadores do Airflow.

      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.

    • Acionador do Airflow. Monitoriza de forma assíncrona todas as tarefas adiadas no seu ambiente. Se tiver, pelo menos, uma instância de acionador no seu ambiente (ou, pelo menos, duas em ambientes altamente resilientes), pode usar operadores adiáveis nos seus DAGs.

      No Cloud Composer 2, o acionador do Airflow está desativado por predefinição. Se quiser criar um ambiente com um acionador, defina o número de acionadores como um ou mais.

    • Servidor Web do Airflow. Executa a interface Web do Airflow, onde pode monitorizar, gerir e visualizar os seus DAGs.

    • Trabalhadores do Airflow. Executar tarefas agendadas pelos programadores do Airflow. O número mínimo e máximo de trabalhadores no seu ambiente muda dinamicamente consoante o número de tarefas na fila.

Consola

Pode selecionar uma predefinição para o seu ambiente. Quando seleciona uma predefinição, os parâmetros de escala e desempenho dessa predefinição são selecionados automaticamente. Também tem a opção de selecionar uma predefinição personalizada e especificar todos os parâmetros de escala e desempenho para o seu ambiente.

Para selecionar a configuração de escala e desempenho para o seu ambiente, na página Criar ambiente:

  • Para usar valores predefinidos, na secção Recursos do ambiente, clique em Pequeno, Médio ou Grande.

  • Para especificar valores personalizados para os parâmetros de escala e desempenho:

    1. Na secção Recursos do ambiente, clique em Personalizado.

    2. Na secção Agendador, defina o número de agendadores que quer usar e a atribuição de recursos para a respetiva CPU, memória e armazenamento.

    3. Na secção Acionador, use o campo Número de acionadores para introduzir o número de acionadores no seu ambiente.

      Se não quiser usar operadores adiáveis nos seus DAGs, defina o número de acionadores como zero. Por predefinição, o acionador está desativado no Cloud Composer 2.

      Se definir, pelo menos, um acionador para o seu ambiente, use os campos CPU e Memória para configurar a atribuição de recursos para os acionadores.

    4. Na secção Processador DAG, especifique o número de processadores DAG no seu ambiente e a quantidade de CPUs, memória e armazenamento para cada processador DAG.

      Os ambientes altamente resilientes requerem, pelo menos, dois processadores DAG.

    5. Na secção Servidor Web, especifique a quantidade de CPUs, memória e armazenamento para o servidor Web.

    6. Na secção Trabalhador, especifique:

      • O número mínimo e máximo de trabalhadores para os limites de dimensionamento automático no seu ambiente.
      • A atribuição de CPU, memória e armazenamento para os seus trabalhadores
    7. Na secção Infraestrutura principal, na lista pendente Tamanho do ambiente, selecione o tamanho do ambiente.

gcloud

Quando cria um ambiente, os seguintes argumentos controlam os parâmetros de escala e desempenho do seu ambiente.

  • --environment-size especifica o tamanho do ambiente.
  • --scheduler-count especifica o número de agendadores.
  • --scheduler-cpu especifica o número de CPUs para um programador do Airflow.
  • --scheduler-memory especifica a quantidade de memória para um programador do Airflow.
  • --scheduler-storage especifica a quantidade de espaço em disco para um programador do Airflow.

  • --triggerer-count especifica o número de acionadores do Airflow no seu ambiente. O valor predefinido para esta flag é 0. Precisa de acionadores se quiser usar operadores adiáveis nos seus DAGs.

    • Para ambientes de resiliência padrão, use um valor entre 0 e 10.
    • Para ambientes altamente resilientes, use 0 ou um valor entre 2 e 10.
  • --triggerer-cpu especifica o número de CPUs para um acionador do Airflow, em unidades de vCPU. Valores permitidos: 0.5, 0.75, 1. O valor predefinido é 0.5.

  • --triggerer-memory especifica a quantidade de memória para um acionador do Airflow, em GB. O valor predefinido é 0.5.

    A memória mínima necessária é igual ao número de CPUs atribuídas aos acionadores. O valor máximo permitido é igual ao número de CPUs do acionador multiplicado por 6,5.

    Por exemplo, se definir a flag --triggerer-cpu como 1, o valor mínimo para --triggerer-memory é 1 e o valor máximo é 6.5.

  • --web-server-cpu especifica o número de CPUs para o servidor Web do Airflow.

  • --web-server-memory especifica a quantidade de memória para o servidor Web do Airflow.

  • --web-server-storage especifica a quantidade de espaço em disco para o servidor Web do Airflow.

  • --worker-cpu especifica o número de CPUs para um trabalhador do Airflow.

  • --worker-memory especifica a quantidade de memória para um trabalhador do Airflow.

  • --worker-storage especifica a quantidade de espaço em disco para um worker do Airflow.

  • --min-workers especifica o número mínimo de trabalhadores do Airflow. O cluster do seu ambiente executa, pelo menos, este número de trabalhadores.

  • --max-workers especifica o número máximo de trabalhadores do Airflow. O cluster do seu ambiente executa, no máximo, este número de trabalhadores.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --environment-size ENVIRONMENT_SIZE \
    --scheduler-count SCHEDULER_COUNT \
    --scheduler-cpu SCHEDULER_CPU \
    --scheduler-memory SCHEDULER_MEMORY \
    --scheduler-storage SCHEDULER_STORAGE \
    --triggerer-count TRIGGERER_COUNT \
    --triggerer-cpu TRIGGERER_CPU \
    --triggerer-memory TRIGGERER_MEMORY \
    --web-server-cpu WEB_SERVER_CPU \
    --web-server-memory WEB_SERVER_MEMORY \
    --web-server-storage WEB_SERVER_STORAGE \
    --worker-cpu WORKER_CPU \
    --worker-memory WORKER_MEMORY \
    --worker-storage WORKER_STORAGE \
    --min-workers WORKERS_MIN \
    --max-workers WORKERS_MAX

Substituir:

  • ENVIRONMENT_SIZE com small, medium ou large.
  • SCHEDULER_COUNT com o número de programadores.
  • SCHEDULER_CPU com o número de CPUs para um programador, em unidades de vCPU.
  • SCHEDULER_MEMORY com a quantidade de memória para um programador.
  • SCHEDULER_STORAGE com o tamanho do disco para um programador.
  • TRIGGERER_COUNT com o número de acionadores.
  • TRIGGERER_CPU com o número de CPUs para um acionador, em unidades de vCPU.
  • TRIGGERER_MEMORY com a quantidade de memória para um acionador, em GB.

  • WEB_SERVER_CPU com o número de CPUs do servidor Web, em unidades de vCPU.

  • WEB_SERVER_MEMORY com a quantidade de memória do servidor Web.

  • WEB_SERVER_STORAGE com a quantidade de memória do servidor Web.

  • WORKER_CPU com o número de CPUs para um trabalhador, em unidades de vCPU.

  • WORKER_MEMORY com a quantidade de memória para um trabalhador.

  • WORKER_STORAGE com o tamanho do disco para um trabalhador.

  • WORKERS_MIN com o número mínimo de trabalhadores do Airflow que o seu ambiente pode executar. O número de trabalhadores no seu ambiente não excede este número, mesmo que um número inferior de trabalhadores consiga processar a carga.

  • WORKERS_MAX com o número máximo de trabalhadores do Airflow que o seu ambiente pode executar. O número de trabalhadores no seu ambiente não excede este número, mesmo que seja necessário um número superior de trabalhadores para processar a carga.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --environment-size small \
    --scheduler-count 1 \
    --scheduler-cpu 0.5 \
    --scheduler-memory 2.5GB \
    --scheduler-storage 2GB \
    --triggerer-count 1 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5GB \
    --web-server-cpu 1 \
    --web-server-memory 2.5GB \
    --web-server-storage 2GB \
    --worker-cpu 1 \
    --worker-memory 2GB \
    --worker-storage 2GB \
    --min-workers 2 \
    --max-workers 4

API

Quando cria um ambiente, no recurso Environment > EnvironmentConfig > WorkloadsConfig, especifique os parâmetros de escala e desempenho do ambiente.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": SCHEDULER_CPU,
        "memoryGb": SCHEDULER_MEMORY,
        "storageGb": SCHEDULER_STORAGE,
        "count": SCHEDULER_COUNT
      },
      "triggerer": {
        "count": TRIGGERER_COUNT,
        "cpu": TRIGGERER_CPU,
        "memoryGb": TRIGGERER_MEMORY
      },
      "webServer": {
        "cpu": WEB_SERVER_CPU,
        "memoryGb": WEB_SERVER_MEMORY,
        "storageGb": WEB_SERVER_STORAGE
      },
      "worker": {
        "cpu": WORKER_CPU,
        "memoryGb": WORKER_MEMORY,
        "storageGb": WORKER_STORAGE,
        "minCount": WORKERS_MIN,
        "maxCount": WORKERS_MAX
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE",
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Substituir:

  • SCHEDULER_CPU com o número de CPUs para um programador, em unidades de vCPU.
  • SCHEDULER_MEMORY com a quantidade de memória para um programador, em GB.
  • SCHEDULER_STORAGE com o tamanho do disco para um programador, em GB.
  • SCHEDULER_COUNT com o número de programadores.

  • TRIGGERER_COUNT com o número de acionadores. O valor predefinido é 0. Precisa de acionadores se quiser usar operadores adiáveis nos seus DAGs.

    • Para ambientes de resiliência padrão, use um valor entre 0 e 10.
    • Para ambientes altamente resilientes, use 0 ou um valor entre 2 e 10.

    Se usar, pelo menos, um acionador, também tem de especificar os parâmetros TRIGGERER_CPU e TRIGGERER_MEMORY:

  • TRIGGERER_CPU especifica o número de CPUs para um acionador, em unidades de vCPU. Valores permitidos: 0.5, 0.75, 1.

  • TRIGGERER_MEMORY configura a quantidade de memória para um acionador. A memória mínima necessária é igual ao número de CPUs atribuídas aos acionadores. O valor máximo permitido é igual ao número de CPUs do acionador multiplicado por 6,5.

    Por exemplo, se definir TRIGGERER_CPU como 1, o valor mínimo para TRIGGERER_MEMORY é 1 e o valor máximo é 6.5.

  • WEB_SERVER_CPU com o número de CPUs do servidor Web, em unidades de vCPU.

  • WEB_SERVER_MEMORY com a quantidade de memória do servidor Web, em GB.

  • WEB_SERVER_STORAGE com o tamanho do disco para o servidor Web, em GB.

  • WORKER_CPU com o número de CPUs para um trabalhador, em unidades de vCPU.

  • WORKER_MEMORY com a quantidade de memória para um trabalhador, em GB.

  • WORKER_STORAGE com o tamanho do disco para um trabalhador, em GB.

  • WORKERS_MIN com o número mínimo de trabalhadores do Airflow que o seu ambiente pode executar. O número de trabalhadores no seu ambiente não excede este número, mesmo que um número inferior de trabalhadores consiga processar a carga.

  • WORKERS_MAX com o número máximo de trabalhadores do Airflow que o seu ambiente pode executar. O número de trabalhadores no seu ambiente não excede este número, mesmo que seja necessário um número superior de trabalhadores para processar a carga.

  • ENVIRONMENT_SIZE com o tamanho do ambiente, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM ou ENVIRONMENT_SIZE_LARGE.

Exemplo:

// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "workloadsConfig": {
      "scheduler": {
        "cpu": 2.5,
        "memoryGb": 2.5,
        "storageGb": 2,
        "count": 1
      },
      "triggerer": {
        "cpu": 0.5,
        "memoryGb": 0.5,
        "count": 1
      },
      "webServer": {
        "cpu": 1,
        "memoryGb": 2.5,
        "storageGb": 2
      },
      "worker": {
        "cpu": 1,
        "memoryGb": 2,
        "storageGb": 2,
        "minCount": 2,
        "maxCount": 4
      }
    },
    "environmentSize": "ENVIRONMENT_SIZE_SMALL",
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Quando cria um ambiente, os seguintes argumentos controlam os parâmetros de escala e desempenho do seu ambiente.

  • No bloco config:

    • O campo environment_size controla o tamanho do ambiente.
  • No bloco workloads_config:

    • O campo scheduler.cpu especifica o número de CPUs para um programador do Airflow.
    • O campo scheduler.memory_gb especifica a quantidade de memória para um programador do Airflow.
    • O campo scheduler.storage_gb especifica a quantidade de espaço em disco para um agendador.
    • O campo scheduler.count especifica o número de agendadores no seu ambiente.
    • O campo triggerer.cpu especifica o número de CPUs para um acionador do Airflow.
    • O campo triggerer.memory_gb especifica a quantidade de memória para um acionador do Airflow.
    • O campo triggerer.count especifica o número de acionadores no seu ambiente.

    • O campo web_server.cpu especifica o número de CPUs para o servidor Web do Airflow.

    • O campo web_server.memory_gb especifica a quantidade de memória para o servidor Web do Airflow.

    • O campo web_server.storage_gb especifica a quantidade de espaço em disco para o servidor Web do Airflow.

    • O campo worker.cpu especifica o número de CPUs para um worker do Airflow.

    • O campo worker.memory_gb especifica a quantidade de memória para um trabalhador do Airflow.

    • O campo worker.storage_gb especifica a quantidade de espaço em disco para um trabalhador do Airflow.

    • O campo worker.min_count especifica o número mínimo de trabalhadores no seu ambiente.

    • O campo worker.max_count especifica o número máximo de trabalhadores no seu ambiente.

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

  config {

    workloads_config {

      scheduler {
        cpu = SCHEDULER_CPU
        memory_gb = SCHEDULER_MEMORY
        storage_gb = SCHEDULER_STORAGE
        count = SCHEDULER_COUNT
      }
      triggerer {
        count = TRIGGERER_COUNT
        cpu = TRIGGERER_CPU
        memory_gb = TRIGGERER_MEMORY
      }
      web_server {
        cpu = WEB_SERVER_CPU
        memory_gb = WEB_SERVER_MEMORY
        storage_gb = WEB_SERVER_STORAGE
      }
      worker {
        cpu = WORKER_CPU
        memory_gb = WORKER_MEMORY
        storage_gb = WORKER_STORAGE
        min_count = WORKERS_MIN
        max_count = WORKERS_MAX
      }
    }

    environment_size = "ENVIRONMENT_SIZE"

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • LOCATION com a região onde o ambiente está localizado.
  • SERVICE_ACCOUNT com a conta de serviço do seu ambiente.
  • SCHEDULER_CPU com o número de CPUs para um programador, em unidades de vCPU.
  • SCHEDULER_MEMORY com a quantidade de memória para um programador, em GB.
  • SCHEDULER_STORAGE com o tamanho do disco para um programador, em GB.
  • SCHEDULER_COUNT com o número de programadores.
  • TRIGGERER_COUNT com o número de acionadores.
  • TRIGGERER_CPU com o número de CPUs para um acionador, em unidades de vCPU.
  • TRIGGERER_MEMORY com a quantidade de memória para um acionador, em GB.

  • WEB_SERVER_CPU com o número de CPUs do servidor Web, em unidades de vCPU.

  • WEB_SERVER_MEMORY com a quantidade de memória do servidor Web, em GB.

  • WEB_SERVER_STORAGE com o tamanho do disco para o servidor Web, em GB.

  • WORKER_CPU com o número de CPUs para um trabalhador, em unidades de vCPU.

  • WORKER_MEMORY com a quantidade de memória para um trabalhador, em GB.

  • WORKER_STORAGE com o tamanho do disco para um trabalhador, em GB.

  • WORKERS_MIN com o número mínimo de trabalhadores do Airflow que o seu ambiente pode executar. O número de trabalhadores no seu ambiente não excede este número, mesmo que um número inferior de trabalhadores consiga processar a carga.

  • WORKERS_MAX com o número máximo de trabalhadores do Airflow que o seu ambiente pode executar. O número de trabalhadores no seu ambiente não excede este número, mesmo que seja necessário um número superior de trabalhadores para processar a carga.

  • ENVIRONMENT_SIZE com o tamanho do ambiente, ENVIRONMENT_SIZE_SMALL, ENVIRONMENT_SIZE_MEDIUM ou ENVIRONMENT_SIZE_LARGE.

Exemplo:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    workloads_config {

      scheduler {
        cpu = 2.5
        memory_gb = 2.5
        storage_gb = 2
        count = 1
      }
      triggerer {
        count = 1
        cpu = 0.5
        memory_gb = 0.5
      }
      dag_processor {
        cpu = 1
        memory_gb = 2
        storage_gb = 1
        count = 1
    }
      web_server {
        cpu = 1
        memory_gb = 2.5
        storage_gb = 2
      }
      worker {
        cpu = 1
        memory_gb = 2
        storage_gb = 2
        min_count = 2
        max_count = 4
      }
    }

    environment_size = "ENVIRONMENT_SIZE_SMALL"

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }

  }
}

Passo 5. (Opcional) Ative o modo de alta resiliência

Altamente resiliente (altamente disponível) Os ambientes do Cloud Composer são ambientes que usam mecanismos de redundância e de comutação por falha incorporados que reduzem a suscetibilidade do ambiente a falhas zonais e interrupções de pontos únicos de falha.

Um ambiente altamente resiliente é multizonal e é executado em, pelo menos, duas zonas de uma região selecionada. Os seguintes componentes são executados em zonas separadas:

O número mínimo de trabalhadores está definido como dois e o cluster do seu ambiente distribui instâncias de trabalhadores entre zonas. Em caso de uma indisponibilidade zonal, as instâncias de trabalho afetadas são reagendadas numa zona diferente. O componente do Cloud SQL de um ambiente altamente resiliente tem uma instância principal e uma instância de reserva que são distribuídas entre zonas.

Consola

Na página Criar ambiente:

  1. Na secção Modo de resiliência, selecione Resiliência elevada.

  2. Na secção Recursos do ambiente, selecione parâmetros de escalabilidade para um ambiente altamente resiliente. Os ambientes altamente resilientes requerem exatamente dois agendadores, zero ou entre dois e dez acionadores e, pelo menos, dois trabalhadores:

    1. Clique em Personalizado.

    2. Na lista pendente Número de agendadores, selecione 2.

    3. Na lista pendente Número de acionadores, selecione 0 ou um valor entre 2 e 10. Configure a atribuição de CPU e memória para os acionadores.

    4. Na lista pendente Número mínimo de trabalhadores, selecione 2 ou mais, consoante o número necessário de trabalhadores.

  3. Na secção Configuração da rede:

    1. Em Tipo de rede, selecione Ambiente de IP privado.

    2. Se necessário, especifique outros parâmetros de rede.

gcloud

Quando cria um ambiente, o argumento --enable-high-resilience ativa o modo de elevada resiliência.

Defina os seguintes argumentos:

  • --enable-high-resilience
  • --enable-private-environment e outros parâmetros de rede para um ambiente de IP privado, se necessário
  • --scheduler-count a 2
  • --triggerer-count a 0 ou um valor entre 2 e 10. Se usar acionadores, as flags --triggerer-cpu and--triggerer-memory` também são necessárias para a criação do ambiente.

    Para mais informações sobre as flags --triggerer-count, --triggerer-cpu e --triggerer-memory, consulte o artigo Configure os parâmetros de desempenho e escala do ambiente.

  • --min-workers a 2 ou mais

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-high-resilience \
    --enable-private-environment \
    --scheduler-count 2 \
    --triggerer-count 2 \
    --triggerer-cpu 0.5 \
    --triggerer-memory 0.5 \
    --min-workers 2

API

Quando cria um ambiente, no recurso Environment > EnvironmentConfig, ative o modo de elevada resiliência.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE",
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }

  }
}

Exemplo:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "resilience_mode": "HIGH_RESILIENCE",
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }

  }
}

Terraform

Quando cria um ambiente, o campo resilience_mode no bloco config ativa o modo de elevada resiliência.

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

  config {

    resilience_mode = "HIGH_RESILIENCE"

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }

  }
}

Exemplo:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    resilience_mode = "HIGH_RESILIENCE"

    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Passo 6: (Opcional) Especifique uma zona para a base de dados do ambiente

Pode especificar uma zona preferida do Cloud SQL quando criar um ambiente de resiliência padrão.

Consola

Na página Criar ambiente:

  1. Na secção Configuração avançada, expanda o item Mostrar configuração avançada.

  2. Na lista Zona da base de dados do Airflow, selecione uma zona do Cloud SQL preferencial.

gcloud

Quando cria um ambiente, o argumento --cloud-sql-preferred-zone especifica uma zona do Cloud SQL preferencial.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --cloud-sql-preferred-zone SQL_ZONE

Substitua o seguinte:

  • SQL_ZONE: zona preferencial do Cloud SQL. Esta zona tem de estar localizada na região onde o ambiente está localizado.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --cloud-sql-preferred-zone us-central1-a

API

Quando cria um ambiente, no recurso Environment > DatabaseConfig, especifique a zona do Cloud SQL preferencial.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "databaseConfig": {
      "zone": "SQL_ZONE"
    },
      "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
  }
}

Substitua o seguinte:

  • SQL_ZONE: zona preferencial do Cloud SQL. Esta zona tem de estar localizada na região onde o ambiente está localizado.

Exemplo:


// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "databaseConfig": {
      "zone": "us-central1-a"
    },
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Quando cria um ambiente, o campo zone no bloco database_config especifica a zona do Cloud SQL preferencial.

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

  config {
    database_config {
      zone = "SQL_ZONE"
    }

    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Substitua o seguinte:

  • SQL_ZONE: zona preferencial do Cloud SQL. Esta zona tem de estar localizada na região onde o ambiente está localizado.

Passo 7. (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 (com PSC). Nesta configuração, o seu ambiente usa o Private Service Connect para a conetividade.

    Configure o seu ambiente de IP privado:

    1. Configure a rede do seu projeto para ambientes de IP privado.
    2. Configure o Private Service Connect quando criar o seu ambiente.
    3. 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 o PSC, 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 do plano de controlo do GKE. Intervalo de IPs para o plano de controlo do GKE.
      • Sub-rede de ligação do Cloud Composer. Intervalo de IP para a sub-rede de ligação do Cloud Composer.
  • 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:

    1. Configure a rede do seu projeto para ambientes de IP privado.
    2. Especifique outros parâmetros para o seu ambiente de IP privado, conforme descrito mais detalhadamente 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 IPs para a interligação de VPCs para exportar da rede do Cloud Composer interna para a rede selecionada. Os componentes da infraestrutura do Cloud Composer usam endereços IP deste intervalo.

      • 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, tem 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:

  1. Certifique-se de que a rede está configurada para o tipo de ambiente que quer criar.

  2. Na secção Configuração da rede, expanda o item Mostrar configuração da rede.

  3. Na lista pendente Rede, selecione o ID da sua rede de VPC.

  4. Na lista pendente Sub-rede, selecione o ID da sub-rede de VPC.

  5. Na secção Intervalo de IP secundário para pods, selecione ou especifique o intervalo de IP secundário para pods. Pode usar um intervalo secundário existente na sua rede de VPC ou optar por usar um intervalo criado automaticamente.

  6. Na secção Intervalo de IP secundário para serviços, selecione ou especifique o intervalo de IP secundário para serviços. Pode usar um intervalo secundário existente na sua rede de VPC ou optar por usar um intervalo criado automaticamente.

  7. Na secção Tipo de rede, selecione a opção Ambiente de IP privado para criar um ambiente de IP privado.

  8. Na secção Conetividade do compositor, selecione o tipo de rede para o seu ambiente e especifique os intervalos de IP para os componentes do ambiente:

    Para um ambiente que usa o Private Service Connect:

    1. Selecione Private Service Connect para um ambiente que usa o Private Service Connect.

    2. Na secção Sub-rede de ligação do Composer, especifique um intervalo de IP para a sub-rede de ligação do Cloud Composer. O endereço do ponto final do PSC é selecionado a partir deste intervalo. Pode especificar um intervalo personalizado ou optar por usar o predefinido.

    Para um ambiente que usa interligações de VPCs:

    1. Selecione VPC peerings para um ambiente que usa VPC peerings.

    2. Na secção Intervalo de IP para a rede de inquilinos do Composer, especifique um intervalo de IP para a rede de inquilinos do Cloud Composer. Esta rede aloja o componente de proxy SQL do seu ambiente. Pode especificar um intervalo personalizado ou optar por usar o predefinido.

    3. Na secção Intervalo de IP para a rede do Cloud SQL, especifique um intervalo de IP para a instância do Cloud SQL. Pode especificar um intervalo personalizado ou optar por usar o predefinido.

  9. Na secção Intervalo de IP para a rede do plano de controlo do GKE, especifique um intervalo de IP para o plano de controlo do GKE:

    • Para usar o intervalo de IP predefinido para a região onde o seu ambiente está localizado, selecione Intervalo de IP 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 GKE.

  10. 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 parte dos nós do cluster e das 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 do plano de controlo do cluster 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 do plano de controlo do cluster 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.

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-environment ativa um ambiente de IP privado.

  • --network especifica o ID da sua rede de VPC.

  • --subnetwork especifica o ID da sub-rede de VPC.

  • --cluster-secondary-range-name ou --cluster-ipv4-cidr configura o intervalo secundário para agrupamentos.

  • --services-secondary-range-name ou--services-ipv4-cidr para configurar o intervalo secundário para serviços.

  • --master-ipv4-cidr especifica um intervalo para o plano de controlo do GKE.

  • (Ambientes com PSC) --connection-subnetwork especifica um intervalo para a sub-rede de ligação do Cloud Composer, que aloja o ponto final do PSC.

  • (Ambientes com interligações de VPC) --connection-type=VPC_PEERING especifica que um ambiente tem de usar interligações de VPC.

  • (Ambientes com intercâmbios da VPC) --composer-network-ipv4-cidr especifica um intervalo para a rede de inquilinos do Cloud Composer. Esta rede aloja o componente de proxy SQL do seu ambiente.

  • (Ambientes com interligações de VPC) --cloud-sql-ipv4-cidr especifica um intervalo para a instância do Cloud SQL.

  • --enable-private-endpoint controla 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-networks e --master-authorized-networks configuram redes autorizadas para o seu ambiente.

  • --enable-privately-used-public-ips configura endereços IP públicos usados de forma privada para o seu ambiente.

  • --enable-ip-masq-agent ativa o agente de mascaramento de IP.

Exemplo (ambiente de IP privado )

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-private-environment \
    --network NETWORK_ID \
    --subnetwork SUBNETWORK_ID \
    --cluster-ipv4-cidr PODS_RANGE \
    --services-ipv4-cidr SERVICES_RANGE \
    --master-ipv4-cidr CONTROL_PLANE_RANGE \
    --connection-subnetwork COMPOSER_PSC_RANGE \

Substituir:

  • NETWORK_ID com o ID da sua rede VPC.
  • SUBNETWORK_ID com o ID da sub-rede da VPC.

  • PODS_RANGE com o intervalo secundário para pods.

  • SERVICES_RANGE com o intervalo secundário para serviços.

  • CONTROL_PLANE_RANGE com o intervalo secundário para o plano de controlo do GKE.

  • COMPOSER_PSC_RANGE com o intervalo da sub-rede de ligação do Cloud Composer.

Passo 8. (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:

  1. Localize a secção Configuração de rede.
  2. No campo Etiquetas de rede, introduza etiquetas de rede para o seu ambiente.

gcloud

Quando cria um ambiente, os seguintes argumentos controlam as etiquetas de rede:

  • --tags especifica 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-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --tags TAGS

Substituir:

  • TAGS com uma lista de etiquetas de rede separadas por vírgulas.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --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"
    }
  }
}

Substituir:

  • TAG com 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 tags no bloco node_config especifica 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"
    }
  }
}

Substituir:

  • TAGS com 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 9. (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:

  1. Na secção Configuração da rede, expanda o item Mostrar configuração da rede.

  2. Na secção Controlo de acesso à rede 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 IP, especifique um intervalo de IP 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 IP.

    • 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-all fornece acesso ao Airflow a partir de todos os endereços IP. Esta é a opção predefinida.

  • O --web-server-allow-ip restringe o acesso apenas a intervalos de IP de origem específicos. Para especificar vários intervalos de IP, use este argumento várias vezes.

  • --web-server-deny-all proíbe o acesso para todos os endereços IP.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Substituir:

  • WS_IP_RANGE com o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.
  • WS_RANGE_DESCRIPTION com a descrição do intervalo de IP.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --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 allowedIpRanges e 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"
    }
  }
}

Substituir:

  • WS_IP_RANGE com o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.
  • WS_RANGE_DESCRIPTION com 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"
    }
  }
}

Substituir:

  • WS_IP_RANGE com o intervalo de IP, na notação CIDR, que pode aceder à IU do Airflow.
  • WS_RANGE_DESCRIPTION com 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 10. (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:

  1. Na secção Variáveis de ambiente, clique em Adicionar variável de ambiente.

  2. Introduza o Nome e o Valor da variável de ambiente.

  3. Na secção Substituições da configuração do Airflow, clique em Adicionar substituição da configuração do Airflow.

  4. Introduza a Secção, a Chave e o Valor para substituir a opção de configuração.

    Por exemplo:

    Secção Chave Valor
    webserver dag_orientation TB

gcloud

Quando cria um ambiente, os seguintes argumentos controlam as variáveis de ambiente e as substituições da configuração do Airflow:

  • --env-variables especifica 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-configs especifica 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-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Substituir:

  • ENV_VARS com uma lista de pares NAME=VALUE separados por vírgulas para variáveis de ambiente.
  • CONFIG_OVERRIDES com uma lista de pares SECTION-KEY=VALUE separados 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-2.13.9-airflow-2.10.5 \
    --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"
    }
  }
}

Substituir:

  • SECTION com a secção no ficheiro de configuração onde se encontra a opção de configuração do Airflow.
  • KEY com o nome da opção de configuração do Airflow.
  • OVERRIDE_VALUE com um valor da opção de configuração do Airflow.
  • VAR_NAME com o nome da variável de ambiente.
  • VAR_VALUE com 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_variables no bloco software_config especifica as variáveis de ambiente.

    Os nomes das variáveis podem conter letras maiúsculas e minúsculas, dígitos e sublinhados, mas não podem começar por um dígito.

  • O bloco airflow_config_overrides no bloco software_config especifica 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"
    }

  }
}

Substituir:

  • SECTION com a secção no ficheiro de configuração onde se encontra a opção de configuração do Airflow.
  • KEY com o nome da opção de configuração do Airflow.
  • OVERRIDE_VALUE com um valor da opção de configuração do Airflow.
  • VAR_NAME com o nome da variável de ambiente.
  • VAR_VALUE com 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 11. (Opcional) Especifique períodos de manutenção

As janelas de manutenção predefinidas no Cloud Composer 2 são das 00:00:00 às 04:00:00 (GMT) todas as semanas, de sexta a domingo.

Para especificar períodos de manutenção personalizados para o seu ambiente:

Consola

Na página Criar ambiente

  1. Localize a secção Períodos de manutenção.

  2. Na lista pendente Fuso horário, escolha um fuso horário para as janelas de manutenção.

  3. Defina a Hora de início, os Dias e a Duração, de modo que:

    • São atribuídas, pelo menos, 12 horas num único semana.

    • Pode usar vários horários, mas a duração de cada horário tem de ser de, pelo menos, 4 horas.

    Por exemplo, um período de 4 horas todas as segundas, quartas e sextas-feiras fornece a quantidade de tempo necessária.

gcloud

Os seguintes argumentos definem os parâmetros das janelas de manutenção:

  • --maintenance-window-start define a hora de início de um período de manutenção.
  • --maintenance-window-end define a hora de fim de um período de manutenção.
  • --maintenance-window-recurrence define a recorrência do período de manutenção.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --maintenance-window-start 'DATETIME_START' \
    --maintenance-window-end 'DATETIME_END' \
    --maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • DATETIME_START com 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_END com 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_RECURRENCE com uma RRULE RFC 5545 para a recorrência das janelas de manutenção. O Cloud Composer suporta dois formatos:

  • O formato FREQ=DAILY especifica uma recorrência diária.

  • O formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA especifica uma recorrência nos dias da semana selecionados.

O exemplo 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-2.13.9-airflow-2.10.5 \
  --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"
    }
  }
}

Substituir:

  • DATETIME_START com 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_END com 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_RECURRENCE com uma RRULE RFC 5545 para a recorrência dos períodos de manutenção. O Cloud Composer suporta dois formatos:

  • O formato FREQ=DAILY especifica uma recorrência diária.

  • O formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA especifica uma recorrência nos dias da semana selecionados.

O exemplo 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"
    }
  }
}

Substituir:

  • DATETIME_START com 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_END com 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_RECURRENCE com uma RRULE RFC 5545 para a recorrência dos períodos de manutenção. O Cloud Composer suporta dois formatos:

    • O formato FREQ=DAILY especifica uma recorrência diária.
    • O formato FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA especifica uma recorrência nos dias da semana selecionados.

O exemplo 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 12. (Opcional) Integração da linhagem de dados

A linhagem de dados é uma funcionalidade do catálogo universal do Dataplex que lhe permite acompanhar o movimento de dados.

A integração da linhagem de dados está disponível nas versões 2.1.2 e posteriores do Cloud Composer 2 com as versões 2.2.5 e posteriores do Airflow.

A integração da linhagem de dados é ativada automaticamente num novo ambiente do Cloud Composer se forem cumpridas as seguintes condições:

  • A API Data Lineage está ativada no seu projeto. Para mais informações, consulte o artigo Ativar a API Data Lineage na documentação do catálogo universal do Dataplex.

  • Não está configurado um Lineage Backend personalizado no Airflow.

Pode desativar a integração da linhagem de dados quando cria um ambiente. Por exemplo, se quiser substituir o comportamento automático ou optar por ativar a linhagem de dados mais tarde, após a criação do ambiente.

Consola

Para desativar a integração da linhagem de dados, na página Criar ambiente:

  1. Na secção Configuração avançada, expanda o item Mostrar configuração avançada.

  2. Na secção Integração da linhagem de dados do Dataplex, selecione Desativar integração com a linhagem de dados do Dataplex.

gcloud

Quando cria um ambiente, o argumento --disable-cloud-data-lineage-integration desativa a integração da linhagem de dados.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --disable-cloud-data-lineage-integration

Substituir:

  • ENVIRONMENT_NAME com o nome do ambiente.
  • LOCATION com a região onde o ambiente está localizado.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --disable-cloud-data-lineage-integration

Passo 13. (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 14. (Opcional) Use o contentor de um ambiente personalizado

Quando cria um ambiente, o Cloud Composer cria automaticamente um contentor para o seu ambiente.

Em alternativa, pode especificar um contentor do Cloud Storage personalizado a partir do seu projeto. O seu ambiente usa este contentor da mesma forma que o contentor criado automaticamente.

Para usar um contentor de ambiente personalizado, siga as instruções descritas no artigo Use o contentor de um ambiente personalizado.

Passo 15. (Opcional) Especifique etiquetas de ambiente

Pode atribuir etiquetas aos seus ambientes para discriminá-los nos custos de faturação com base nessas etiquetas.

Consola

Na página Criar ambiente, na secção Etiquetas:

  1. Clique em Adicionar etiqueta.

  2. 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-2.13.9-airflow-2.10.5 \
    --service-account "SERVICE_ACCOUNT" \
    --labels LABELS

Substituir:

  • LABELS com uma lista de pares KEY=VALUE separados por vírgulas para etiquetas de ambiente.

Exemplo:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-2.13.9-airflow-2.10.5 \
    --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"
  }
}

Substituir:

  • LABEL_KEY com uma chave da etiqueta de ambiente.
  • LABEL_VALUE com 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"
  }

}

Substituir:

  • LABEL_KEY com uma chave da etiqueta de ambiente.
  • LABEL_VALUE com 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"
  }

}

O que se segue?