Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Halaman ini adalah pengiring halaman utama tentang membuat lingkungan. Ini menunjukkan cara menyiapkan Lingkungan Cloud Composer dan akun layanan yang dikelola pengguna untuk lingkungan ini dalam project Google Cloud yang sudah ada dengan Terraform. Anda dapat menggunakan halaman ini sebagai awal, lalu menambahkan halaman lainnya parameter konfigurasi untuk lingkungan Anda, sesuai yang diperlukan.
Sebelum memulai
Panduan ini mengasumsikan bahwa Anda memiliki project Google Cloud dengan penagihan yang dikonfigurasi:
- Anda dapat menggunakan project yang sudah ada.
- Anda dapat membuat project baru menggunakan konsol Google Cloud, Google Cloud CLI, API, atau library klien Python.
- Anda dapat membuat dan mengelola project menggunakan Terraform. Untuk selengkapnya
informasi selengkapnya, lihat dokumentasi Terraform untuk mengetahui
Referensi
google_project
.
Melakukan Autentikasi dengan Google Cloud
Untuk melakukan autentikasi dengan Google Cloud, jalankan:
gcloud auth application-default login
Untuk informasi selengkapnya tentang perintah ini, lihat
gcloud auth application-default
.
Mengonfigurasi penyedia Google di Terraform
Menentukan project ID yang ada dan region default untuk resource. Cloud Composer Anda menggunakan region ini.
provider "google-beta" {
project = "example-project"
region = "us-central1"
}
Mengaktifkan Cloud Composer API
Aktifkan Cloud Composer API di project Anda:
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
// this flag is introduced in 5.39.0 version of Terraform. If set to true it will
//prevent you from disabling composer_api through Terraform if any environment was
//there in the last 30 days
check_if_service_has_usage_on_destroy = true
}
Membuat akun layanan kustom di project Anda
Secara default, lingkungan Cloud Composer menggunakan akun Compute Engine. Panduan ini menunjukkan pendekatan lain, dengan membuat akun layanan baru, yang memiliki semua izin yang diperlukan untuk menjalankan lingkungan Cloud Composer.
Tentukan akun layanan kustom dengan peran dan izin berikut. Sebagai informasi selengkapnya tentang izin untuk akun layanan lingkungan, lihat Kontrol akses dengan 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"
}
Membuat lingkungan
Buat lingkungan Anda menggunakan Terraform.
Contoh tersebut menunjukkan cara membuat lingkungan yang menggunakan akun layanan Anda. Anda dapat menambahkan parameter lain yang menentukan konfigurasi lain parameter lingkungan Anda, seperti skala dan performa kustom parameter, atau paket PyPI tambahan.
Untuk informasi selengkapnya tentang parameter lainnya, lihat Membuat lingkungan.
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
config {
software_config {
image_version = "composer-3-airflow-2.9.1-build.6"
}
node_config {
service_account = google_service_account.custom_service_account.email
}
}
}
Skrip Terraform lengkap (parameter default)
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
// this flag is introduced in 5.39.0 version of Terraform. If set to true it will
//prevent you from disabling composer_api through Terraform if any environment was
//there in the last 30 days
check_if_service_has_usage_on_destroy = true
}
resource "google_composer_environment" "example_environment" {
provider = google-beta
name = "example-environment"
config {
// Add your environment configuration here
software_config {
image_version = "composer-3-airflow-2.9.1-build.6"
}
}
}
Skrip Terraform lengkap (akun layanan kustom)
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
// this flag is introduced in 5.39.0 version of Terraform. If set to true it will
//prevent you from disabling composer_api through Terraform if any environment was
//there in the last 30 days
check_if_service_has_usage_on_destroy = true
}
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 {
software_config {
image_version = "composer-3-airflow-2.9.1-build.6"
}
node_config {
service_account = google_service_account.custom_service_account.email
}
}
}
Langkah selanjutnya
Lihat halaman dokumentasi lainnya untuk informasi tentang cara mengonfigurasi lingkungan dengan Terraform. Contoh:
- Membuat lingkungan
- Mengganti opsi konfigurasi Airflow
- Menetapkan variabel lingkungan
- Menginstal dependensi Python
- Menskalakan lingkungan