Cloud Composer 1 | Cloud Composer 2
Esta página é um complemento da página principal sobre como criar ambientes. Confira também como configurar um ambiente do Cloud Composer e uma conta de serviço gerenciado pelo usuário para esse ambiente em um projeto atual do Google Cloud com o Terraform. Use esta página como ponto de partida e adicione mais parâmetros de configuração ao ambiente, conforme necessário.
Antes de começar
Neste guia, presumimos que você tenha um projeto do Google Cloud com faturamento configurado:
- É possível usar um projeto atual.
- É possível criar um novo projeto usando o console do Google Cloud, a Google Cloud CLI, a API ou uma biblioteca de cliente do Python.
- É possível criar e gerenciar seu projeto usando o Terraform. Para mais informações, consulte a documentação do Terraform para o recurso
google_project
.
Autenticar com o Google Cloud
Para autenticar com o Google Cloud, execute:
gcloud auth application-default login
Para mais informações sobre esse comando, consulte gcloud auth application-default
.
Configurar o provedor do Google no Terraform
Especifique o ID do projeto atual e uma região padrão para os recursos. O ambiente do Cloud Composer usa essa região.
provider "google-beta" {
project = "example-project"
region = "us-central1"
}
Ativar a API do Cloud Composer
Ative a API Cloud Composer no seu projeto:
resource "google_project_service" "composer_api" {
provider = google-beta
project = "example-project"
service = "composer.googleapis.com"
// Disabling Cloud Composer API might irreversibly break all other
// environments in your project.
// This parameter prevents automatic disabling
// of the API when the resource is destroyed.
// We recommend to disable the API only after all environments are deleted.
disable_on_destroy = false
}
Criar uma conta de serviço personalizada no seu projeto
Por padrão, os ambientes do Cloud Composer usam a conta padrão do Compute Engine. Neste guia, demonstramos outra abordagem: criando uma nova conta de serviço com todas as permissões necessárias para executar um ambiente do Cloud Composer.
Defina uma conta de serviço personalizada com os papéis e as permissões a seguir. Para mais informações sobre permissões para contas de serviço do ambiente, consulte Controle de acesso com o IAM.
resource "google_service_account" "custom_service_account" {
provider = google-beta
account_id = "custom-service-account"
display_name = "Example Custom Service Account"
}
resource "google_project_iam_member" "custom_service_account" {
provider = google-beta
project = "example-project"
member = format("serviceAccount:%s", google_service_account.custom_service_account.email)
// Role for Public IP environments
role = "roles/composer.worker"
}
Criar um ambiente
Criar o ambiente usando o Terraform.
O exemplo demonstra como criar um ambiente que usa a conta de serviço personalizada. É possível adicionar mais parâmetros que definam outros parâmetros de configuração do ambiente, como parâmetros de escalonamento e desempenho personalizados ou outros pacotes PyPI.
Para mais informações sobre outros parâmetros, consulte Criar ambientes.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
config {
node_config {
service_account = google_service_account.custom_service_account.email
}
}
}
Script completo do Terraform (parâmetros padrão)
provider "google-beta" {
project = "example-project"
region = "us-central1"
}
resource "google_project_service" "composer_api" {
provider = google-beta
project = "example-project"
service = "composer.googleapis.com"
// Disabling Cloud Composer API might irreversibly break all other
// environments in your project.
disable_on_destroy = false
}
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
config {
// Add your environment configuration here
}
}
Script completo do Terraform (conta de serviço personalizada)
provider "google-beta" {
project = "example-project"
region = "us-central1"
}
resource "google_project_service" "composer_api" {
provider = google-beta
project = "example-project"
service = "composer.googleapis.com"
// Disabling Cloud Composer API might irreversibly break all other
// environments in your project.
disable_on_destroy = false
}
resource "google_service_account" "custom_service_account" {
provider = google-beta
account_id = "custom-service-account"
display_name = "Example Custom Service Account"
}
resource "google_project_iam_member" "custom_service_account" {
provider = google-beta
project = "example-project"
member = format("serviceAccount:%s", google_service_account.custom_service_account.email)
// Role for Public IP environments
role = "roles/composer.worker"
}
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
config {
node_config {
service_account = google_service_account.custom_service_account.email
}
}
}
A seguir
Consulte outras páginas de documentação para mais informações sobre como configurar o ambiente com o Terraform. Exemplo:
- Criar ambientes
- Substituir as opções de configuração do Airflow
- Definir as variáveis de ambiente
- Instalar dependências do Python
- Escalonar ambientes
- Configurar redes autorizadas