Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Halaman ini menjelaskan cara membuat lingkungan Cloud Composer.
- Untuk mengetahui informasi selengkapnya tentang lingkungan, lihat Arsitektur lingkungan.
- Untuk mengetahui informasi selengkapnya tentang cara membuat lingkungan dengan Terraform, lihat Membuat lingkungan (Terraform).
Sebelum memulai
Aktifkan Cloud Composer API. Untuk mengetahui daftar lengkap layanan yang digunakan oleh Cloud Composer, lihat Layanan yang diperlukan oleh Cloud Composer.
Perkiraan waktu untuk membuat lingkungan adalah 25 menit.
Jika Anda membuat lingkungan dengan Terraform, akun layanan yang digunakan oleh Terraform harus memiliki peran dengan izin
composer.environments.create
diaktifkan.Untuk mengetahui informasi selengkapnya tentang akun layanan untuk Terraform, lihat Referensi Konfigurasi Penyedia Google.
Untuk mengetahui informasi selengkapnya tentang penggunaan Terraform untuk membuat lingkungan Cloud Composer, lihat dokumentasi Terraform.
Untuk mengetahui informasi selengkapnya tentang parameter tambahan, lihat Referensi Argumen Terraform.
VPC SC: Untuk men-deploy lingkungan Cloud Composer di dalam perimeter keamanan, lihat Mengonfigurasi VPC SC. Jika digunakan dengan Cloud Composer, Kontrol Layanan VPC memiliki beberapa batasan yang diketahui.
Langkah 1. Membuat atau memilih akun layanan lingkungan
Saat membuat lingkungan, Anda menentukan akun layanan. Akun layanan ini disebut akun layanan lingkungan. Lingkungan Anda menggunakan akun layanan ini untuk melakukan sebagian besar operasi.
Akun layanan untuk lingkungan Anda bukan akun pengguna. Akun layanan adalah jenis akun khusus yang digunakan oleh aplikasi atau instance virtual machine (VM), bukan orang.
Anda tidak dapat mengubah akun layanan lingkungan Anda nanti.
Jika Anda belum memiliki akun layanan untuk lingkungan Cloud Composer di project, buat akun layanan.
Lihat Membuat lingkungan (Terraform) untuk contoh lanjutan tentang cara membuat akun layanan untuk lingkungan Anda di Terraform.
Untuk membuat akun layanan baru untuk lingkungan Anda:
Buat akun layanan baru seperti yang dijelaskan dalam dokumentasi Identity and Access Management.
Berikan peran kepadanya, seperti yang dijelaskan dalam dokumentasi Identity and Access Management. Peran yang diperlukan adalah Composer Worker (
composer.worker
).Untuk mengakses resource lain di project Google Cloud Anda, berikan izin tambahan untuk mengakses resource tersebut ke akun layanan ini. Peran Composer Worker (
composer.worker
) memberikan kumpulan izin yang diperlukan ini dalam sebagian besar kasus. Tambahkan izin tambahan ke akun layanan ini hanya jika diperlukan untuk pengoperasian DAG Anda.
Langkah 2. Penyiapan dasar
Langkah ini akan membuat lingkungan Cloud Composer dengan parameter default di lokasi yang ditentukan.
Konsol
Di konsol Google Cloud , buka halaman Create environment.
Di kolom Nama, masukkan nama untuk lingkungan Anda.
Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan, jadi Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Pedoman penamaan bucket untuk mengetahui daftar batasan.
Di menu drop-down Location, pilih lokasi untuk lingkungan Anda.
Lokasi adalah region tempat lingkungan berada.
Di menu drop-down Image version, pilih image Cloud Composer dengan versi Airflow yang diperlukan.
Di menu drop-down Service account, pilih akun layanan untuk lingkungan Anda.
Jika Anda belum memiliki akun layanan untuk lingkungan Anda, lihat Membuat atau memilih akun layanan lingkungan.
gcloud
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version IMAGE_VERSION \
--service-account "SERVICE_ACCOUNT"
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan, jadi Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Pedoman penamaan bucket untuk mengetahui daftar batasan.
LOCATION
dengan region untuk lingkungan.Lokasi adalah region tempat lingkungan berada.
SERVICE_ACCOUNT
dengan akun layanan untuk lingkungan Anda.IMAGE_VERSION
dengan nama image Cloud Composer.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
"
API
Buat permintaan API environments.create
. Tentukan
konfigurasi di resource Environment
.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"softwareConfig": {
"imageVersion": "IMAGE_VERSION"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Ganti:
PROJECT_ID
dengan Project ID.LOCATION
dengan region untuk lingkungan.Lokasi adalah region tempat lingkungan berada.
ENVIRONMENT_NAME
dengan nama lingkungan.Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan, jadi Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Pedoman penamaan bucket untuk mengetahui daftar batasan.
IMAGE_VERSION
dengan nama image Cloud Composer.SERVICE_ACCOUNT
dengan akun layanan untuk lingkungan Anda.
Contoh:
// POST https://composer.googleapis.com/v1/{parent=projects/*/locations/*}/environments
{
"name": "projects/example-project/locations/us-central1/environments/example-environment",
"config": {
"softwareConfig": {
"imageVersion": "composer-3-airflow-2.10.5-build.10"
},
"nodeConfig": {
"serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Terraform
Untuk membuat lingkungan dengan parameter default di lokasi tertentu,
tambahkan blok resource berikut ke konfigurasi Terraform Anda dan jalankan
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"
}
}
}
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan, jadi Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Pedoman penamaan bucket untuk mengetahui daftar batasan.
LOCATION
dengan region untuk lingkungan.Lokasi adalah region tempat lingkungan berada.
IMAGE_VERSION
dengan nama image Cloud Composer.SERVICE_ACCOUNT
dengan akun layanan untuk lingkungan Anda.
Contoh:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
config {
software_config {
image_version = "composer-3-airflow-2.10.5-build.10"
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Langkah 3. (Opsional) Mengonfigurasi parameter performa dan skala lingkungan
Untuk menentukan konfigurasi skala dan performa lingkungan Anda, pilih ukuran lingkungan dan konfigurasi workload.
Anda dapat mengubah semua parameter performa dan skala setelah membuat lingkungan.
Parameter berikut mengontrol skala dan performa:
Ukuran lingkungan. Mengontrol parameter performa infrastruktur Cloud Composer terkelola yang mencakup database Airflow. Pertimbangkan untuk memilih ukuran lingkungan yang lebih besar jika Anda ingin menjalankan sejumlah besar DAG dan tugas dengan performa infrastruktur yang lebih tinggi. Misalnya, ukuran lingkungan yang lebih besar akan meningkatkan jumlah entri log tugas Airflow yang dapat diproses lingkungan Anda dengan penundaan minimal.
Konfigurasi workload. Mengontrol skala dan performa komponen Airflow yang berjalan di cluster GKE lingkungan Anda.
Penjadwal Airflow. Mengurai file definisi DAG, menjadwalkan eksekusi DAG berdasarkan interval jadwal, dan mengantrekan tugas untuk dieksekusi oleh worker Airflow.
Lingkungan Anda dapat menjalankan lebih dari satu scheduler Airflow secara bersamaan. Gunakan beberapa penjadwal untuk mendistribusikan beban di antara beberapa instance penjadwal untuk performa dan keandalan yang lebih baik.
Menambah jumlah penjadwal tidak selalu meningkatkan performa Airflow. Misalnya, hanya memiliki satu penjadwal dapat memberikan performa yang lebih baik daripada memiliki dua penjadwal. Hal ini dapat terjadi saat penjadwal tambahan tidak digunakan, sehingga menggunakan resource lingkungan Anda tanpa berkontribusi terhadap performa keseluruhan. Performa scheduler yang sebenarnya bergantung pada jumlah worker Airflow, jumlah DAG dan tugas yang berjalan di lingkungan Anda, serta konfigurasi Airflow dan lingkungan.
Sebaiknya mulai dengan dua penjadwal, lalu pantau performa lingkungan Anda. Jika mengubah jumlah penjadwal, Anda selalu dapat menskalakan lingkungan kembali ke jumlah penjadwal semula.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi beberapa penjadwal, lihat dokumentasi Airflow.
Pemicu Airflow. Memantau semua tugas yang ditangguhkan secara asinkron di lingkungan Anda. Jika memiliki setidaknya satu instance pemicu di lingkungan Anda (atau setidaknya dua di lingkungan yang sangat tangguh), Anda dapat menggunakan operator yang dapat ditangguhkan di DAG Anda.
Di Cloud Composer 3, pemicu Airflow diaktifkan secara default. Jika Anda ingin membuat lingkungan tanpa pemicu, tetapkan jumlah pemicu ke nol.
Prosesor DAG Airflow. Memproses file DAG dan mengubahnya menjadi objek DAG. Di Cloud Composer 3, bagian penjadwal ini berjalan sebagai komponen lingkungan yang terpisah.
Server web Airflow. Menjalankan antarmuka web Airflow tempat Anda dapat memantau, mengelola, dan memvisualisasikan DAG.
Pekerja Airflow. Menjalankan tugas yang dijadwalkan oleh penjadwal Airflow. Jumlah minimum dan maksimum worker di lingkungan Anda berubah secara dinamis, bergantung pada jumlah tugas dalam antrean.
Konsol
Anda dapat memilih preset untuk lingkungan Anda. Saat Anda memilih preset, parameter skala dan performa untuk preset tersebut akan dipilih secara otomatis. Anda juga memiliki opsi untuk memilih preset kustom dan menentukan semua parameter skala dan performa untuk lingkungan Anda.
Untuk memilih konfigurasi penskalaan dan performa untuk lingkungan Anda, di halaman Create environment:
Untuk menggunakan nilai yang telah ditentukan sebelumnya, di bagian Environment resources, klik Small, Medium, atau Large.
Untuk menentukan nilai kustom untuk parameter skala dan performa:
Di bagian Environment resources, klik Custom.
Di bagian Scheduler, tetapkan jumlah penjadwal yang ingin Anda gunakan, dan alokasi resource untuk CPU, memori, dan penyimpanan.
Di bagian Pemicu, gunakan kolom Jumlah pemicu untuk memasukkan jumlah pemicu di lingkungan Anda.
Jika Anda tidak ingin menggunakan operator yang dapat ditangguhkan di DAG, tetapkan jumlah pemicu ke nol.
Jika Anda menetapkan setidaknya satu pemicu untuk lingkungan, gunakan kolom CPU dan Memori untuk mengonfigurasi alokasi resource untuk pemicu.
Di bagian Pemroses DAG, tentukan jumlah pemroses DAG di lingkungan Anda serta jumlah CPU, memori, dan penyimpanan untuk setiap pemroses DAG.
Lingkungan yang sangat tangguh memerlukan setidaknya dua pemroses DAG.
Di bagian Web server, tentukan jumlah CPU, memori, dan penyimpanan untuk server web.
Di bagian Worker, tentukan:
- Jumlah minimum dan maksimum pekerja untuk batas penskalaan otomatis di lingkungan Anda.
- Alokasi CPU, memori, dan penyimpanan untuk pekerja Anda
Di bagian Core infrastructure, di menu drop-down Environment size, pilih ukuran lingkungan.
gcloud
Saat Anda membuat lingkungan, argumen berikut mengontrol parameter skala dan performa lingkungan Anda.
--environment-size
menentukan ukuran lingkungan.--scheduler-count
menentukan jumlah penjadwal.--scheduler-cpu
menentukan jumlah CPU untuk penjadwal Airflow.--scheduler-memory
menentukan jumlah memori untuk penjadwal Airflow.--scheduler-storage
menentukan jumlah ruang disk untuk penjadwal Airflow.--triggerer-count
menentukan jumlah pemicu Airflow di lingkungan Anda. Nilai default untuk tanda ini adalah0
. Anda memerlukan pemicu jika ingin menggunakan operator yang dapat ditangguhkan di DAG.- Untuk lingkungan ketahanan standar, gunakan nilai antara
0
dan10
. - Untuk lingkungan yang sangat tangguh, gunakan
0
atau nilai antara2
dan10
.
- Untuk lingkungan ketahanan standar, gunakan nilai antara
--triggerer-cpu
menentukan jumlah CPU untuk pemicu Airflow, dalam satuan vCPU. Nilai yang diizinkan:0.5
,0.75
,1
. Nilai default-nya adalah0.5
.--triggerer-memory
menentukan jumlah memori untuk pemicu Airflow, dalam GB. Nilai defaultnya adalah0.5
.Memori minimum yang diperlukan sama dengan jumlah CPU yang dialokasikan untuk pemicu. Nilai maksimum yang diizinkan sama dengan jumlah CPU pemicu dikalikan 6,5.
Misalnya, jika Anda menetapkan tanda
--triggerer-cpu
ke1
, nilai minimum untuk--triggerer-memory
adalah1
dan nilai maksimum adalah6.5
.--dag-processor-count
menentukan jumlah pemroses DAG di lingkungan Anda.Lingkungan yang sangat tangguh memerlukan setidaknya dua pemroses DAG.
--dag-processor-cpu
menentukan jumlah CPU untuk pemroses DAG.--dag-processor-memory
menentukan jumlah memori untuk pemroses DAG.--dag-processor-storage
menentukan jumlah ruang disk untuk prosesor DAG.--web-server-cpu
menentukan jumlah CPU untuk server web Airflow.--web-server-memory
menentukan jumlah memori untuk server web Airflow.--web-server-storage
menentukan jumlah ruang disk untuk server web Airflow.--worker-cpu
menentukan jumlah CPU untuk pekerja Airflow.--worker-memory
menentukan jumlah memori untuk pekerja Airflow.--worker-storage
menentukan jumlah ruang disk untuk pekerja Airflow.--min-workers
menentukan jumlah minimum pekerja Airflow. Cluster lingkungan Anda menjalankan setidaknya jumlah worker ini.--max-workers
menentukan jumlah maksimum pekerja Airflow. Cluster lingkungan Anda menjalankan maksimal jumlah worker ini.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--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 \
--dag-processor-count DAG_PROCESSOR_COUNT \
--dag-processor-cpu DAG_PROCESSOR_CPU \
--dag-processor-memory DAG_PROCESSOR_MEMORY \
--dag-processor-storage DAG_PROCESSOR_STORAGE \
--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
Ganti:
ENVIRONMENT_SIZE
dengansmall
,medium
, ataularge
.SCHEDULER_COUNT
dengan jumlah penjadwal.SCHEDULER_CPU
dengan jumlah CPU untuk penjadwal, dalam satuan vCPU.SCHEDULER_MEMORY
dengan jumlah memori untuk penjadwal.SCHEDULER_STORAGE
dengan ukuran disk untuk penjadwal.TRIGGERER_COUNT
dengan jumlah pemicu.TRIGGERER_CPU
dengan jumlah CPU untuk pemicu, dalam satuan vCPU.TRIGGERER_MEMORY
dengan jumlah memori untuk pemicu, dalam GB.DAG_PROCESSOR_COUNT
dengan jumlah pemroses DAG.DAG_PROCESSOR_CPU
dengan jumlah CPU untuk pemroses DAG.DAG_PROCESSOR_MEMORY
dengan jumlah memori untuk prosesor DAG.DAG_PROCESSOR_STORAGE
dengan jumlah ruang disk untuk prosesor DAG.WEB_SERVER_CPU
dengan jumlah CPU untuk server web, dalam unit vCPU.WEB_SERVER_MEMORY
dengan jumlah memori untuk server web.WEB_SERVER_STORAGE
dengan jumlah memori untuk server web.WORKER_CPU
dengan jumlah CPU untuk pekerja, dalam satuan vCPU.WORKER_MEMORY
dengan jumlah memori untuk pekerja.WORKER_STORAGE
dengan ukuran disk untuk pekerja.WORKERS_MIN
dengan jumlah minimum pekerja Airflow yang dapat dijalankan lingkungan Anda. Jumlah worker di lingkungan Anda tidak akan melebihi jumlah ini, meskipun jumlah worker yang lebih rendah dapat menangani beban.WORKERS_MAX
dengan jumlah maksimum worker Airflow yang dapat dijalankan oleh lingkungan Anda. Jumlah pekerja di lingkungan Anda tidak boleh melebihi jumlah ini, meskipun jumlah pekerja yang lebih tinggi diperlukan untuk menangani beban.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--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 \
--dag-processor-count 1 \
--dag-processor-cpu 0.5 \
--dag-processor-memory 2GB \
--dag-processor-storage 1GB \
--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
Saat membuat lingkungan, di resource Environment > EnvironmentConfig > WorkloadsConfig, tentukan parameter skala dan performa lingkungan.
{
"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
},
"dagProcessor": {
"count": DAG_PROCESSOR_COUNT,
"cpu": DAG_PROCESSOR_CPU,
"memoryGb": DAG_PROCESSOR_MEMORY,
"storageGb": DAG_PROCESSOR_STORAGE
},
"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"
}
}
}
Ganti:
SCHEDULER_CPU
dengan jumlah CPU untuk penjadwal, dalam satuan vCPU.SCHEDULER_MEMORY
dengan jumlah memori untuk penjadwal, dalam GB.SCHEDULER_STORAGE
dengan ukuran disk untuk penjadwal, dalam GB.SCHEDULER_COUNT
dengan jumlah penjadwal.TRIGGERER_COUNT
dengan jumlah pemicu. Nilai defaultnya adalah0
. Anda memerlukan pemicu jika ingin menggunakan operator yang dapat ditangguhkan di DAG.- Untuk lingkungan ketahanan standar, gunakan nilai antara
0
dan10
. - Untuk lingkungan yang sangat tangguh, gunakan
0
atau nilai antara2
dan10
.
Jika menggunakan setidaknya satu pemicu, Anda juga harus menentukan parameter
TRIGGERER_CPU
danTRIGGERER_MEMORY
:- Untuk lingkungan ketahanan standar, gunakan nilai antara
TRIGGERER_CPU
menentukan jumlah CPU untuk pemicu, dalam satuan vCPU. Nilai yang diizinkan:0.5
,0.75
,1
.TRIGGERER_MEMORY
mengonfigurasi jumlah memori untuk pemicu. Memori minimum yang diperlukan sama dengan jumlah CPU yang dialokasikan untuk pemicu. Nilai maksimum yang diizinkan sama dengan jumlah CPU pemicu dikalikan dengan 6,5.Misalnya, jika Anda menetapkan
TRIGGERER_CPU
ke1
, nilai minimum untukTRIGGERER_MEMORY
adalah1
dan nilai maksimum adalah6.5
.DAG_PROCESSOR_COUNT
dengan jumlah pemroses DAG.Lingkungan yang sangat tangguh memerlukan setidaknya dua pemroses DAG.
DAG_PROCESSOR_CPU
dengan jumlah CPU untuk pemroses DAG, dalam unit vCPU.DAG_PROCESSOR_MEMORY
dengan jumlah memori untuk prosesor DAG, dalam GB.DAG_PROCESSOR_STORAGE
dengan jumlah ruang disk untuk prosesor DAG, dalam GB.WEB_SERVER_CPU
dengan jumlah CPU untuk server web, dalam unit vCPU.WEB_SERVER_MEMORY
dengan jumlah memori untuk server web, dalam GB.WEB_SERVER_STORAGE
dengan ukuran disk untuk server web, dalam GB.WORKER_CPU
dengan jumlah CPU untuk pekerja, dalam satuan vCPU.WORKER_MEMORY
dengan jumlah memori untuk pekerja, dalam GB.WORKER_STORAGE
dengan ukuran disk untuk pekerja, dalam GB.WORKERS_MIN
dengan jumlah minimum pekerja Airflow yang dapat dijalankan lingkungan Anda. Jumlah worker di lingkungan Anda tidak akan melebihi jumlah ini, meskipun jumlah worker yang lebih rendah dapat menangani beban.WORKERS_MAX
dengan jumlah maksimum worker Airflow yang dapat dijalankan oleh lingkungan Anda. Jumlah pekerja di lingkungan Anda tidak boleh melebihi jumlah ini, meskipun jumlah pekerja yang lebih tinggi diperlukan untuk menangani beban.ENVIRONMENT_SIZE
dengan ukuran lingkungan,ENVIRONMENT_SIZE_SMALL
,ENVIRONMENT_SIZE_MEDIUM
, atauENVIRONMENT_SIZE_LARGE
.
Contoh:
// 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
},
"dagProcessor": {
"count": 1,
"cpu": 0.5,
"memoryGb": 2,
"storageGb": 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
Saat Anda membuat lingkungan, argumen berikut mengontrol parameter skala dan performa lingkungan Anda.
Di blok
config
:- Kolom
environment_size
mengontrol ukuran lingkungan.
- Kolom
Di blok
workloads_config
:- Kolom
scheduler.cpu
menentukan jumlah CPU untuk penjadwal Airflow. - Kolom
scheduler.memory_gb
menentukan jumlah memori untuk penjadwal Airflow. - Kolom
scheduler.storage_gb
menentukan jumlah ruang disk untuk penjadwal. - Kolom
scheduler.count
menentukan jumlah penjadwal di lingkungan Anda. - Kolom
triggerer.cpu
menentukan jumlah CPU untuk pemicu Airflow. - Kolom
triggerer.memory_gb
menentukan jumlah memori untuk pemicu Airflow. Kolom
triggerer.count
menentukan jumlah pemicu di lingkungan Anda.Kolom
dag_processor.cpu
menentukan jumlah CPU untuk pemroses DAG.Kolom
dag_processor.memory_gb
menentukan jumlah memori untuk pemroses DAG.Kolom
dag_processor.storage_gb
menentukan jumlah ruang disk untuk pemroses DAG.Kolom
dag_processor.count
menentukan jumlah pemroses DAG.Lingkungan yang sangat tangguh memerlukan setidaknya dua pemroses DAG.
Kolom
web_server.cpu
menentukan jumlah CPU untuk server web Airflow.Kolom
web_server.memory_gb
menentukan jumlah memori untuk server web Airflow.Kolom
web_server.storage_gb
menentukan jumlah ruang disk untuk server web Airflow.Kolom
worker.cpu
menentukan jumlah CPU untuk pekerja Airflow.Kolom
worker.memory_gb
menentukan jumlah memori untuk pekerja Airflow.Kolom
worker.storage_gb
menentukan jumlah ruang disk untuk worker Airflow.Kolom
worker.min_count
menentukan jumlah minimum pekerja di lingkungan Anda.Kolom
worker.max_count
menentukan jumlah maksimum pekerja di lingkungan Anda.
- Kolom
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
}
dag_processor {
cpu = DAG_PROCESSOR_CPU
memory_gb = DAG_PROCESSOR_MEMORY
storage_gb = DAG_PROCESSOR_STORAGE
count = DAG_PROCESSOR_COUNT
}
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"
}
}
}
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.LOCATION
dengan region tempat lingkungan berada.SERVICE_ACCOUNT
dengan akun layanan untuk lingkungan Anda.SCHEDULER_CPU
dengan jumlah CPU untuk penjadwal, dalam satuan vCPU.SCHEDULER_MEMORY
dengan jumlah memori untuk penjadwal, dalam GB.SCHEDULER_STORAGE
dengan ukuran disk untuk penjadwal, dalam GB.SCHEDULER_COUNT
dengan jumlah penjadwal.TRIGGERER_COUNT
dengan jumlah pemicu.TRIGGERER_CPU
dengan jumlah CPU untuk pemicu, dalam satuan vCPU.TRIGGERER_MEMORY
dengan jumlah memori untuk pemicu, dalam GB.DAG_PROCESSOR_CPU
dengan jumlah CPU untuk pemroses DAG, dalam unit vCPU.DAG_PROCESSOR_MEMORY
dengan jumlah memori untuk prosesor DAG, dalam GB.DAG_PROCESSOR_STORAGE
dengan jumlah ruang disk untuk prosesor DAG, dalam GB.DAG_PROCESSOR_COUNT
dengan jumlah pemroses DAG.WEB_SERVER_CPU
dengan jumlah CPU untuk server web, dalam unit vCPU.WEB_SERVER_MEMORY
dengan jumlah memori untuk server web, dalam GB.WEB_SERVER_STORAGE
dengan ukuran disk untuk server web, dalam GB.WORKER_CPU
dengan jumlah CPU untuk pekerja, dalam satuan vCPU.WORKER_MEMORY
dengan jumlah memori untuk pekerja, dalam GB.WORKER_STORAGE
dengan ukuran disk untuk pekerja, dalam GB.WORKERS_MIN
dengan jumlah minimum pekerja Airflow yang dapat dijalankan lingkungan Anda. Jumlah worker di lingkungan Anda tidak akan melebihi jumlah ini, meskipun jumlah worker yang lebih rendah dapat menangani beban.WORKERS_MAX
dengan jumlah maksimum worker Airflow yang dapat dijalankan oleh lingkungan Anda. Jumlah pekerja di lingkungan Anda tidak boleh melebihi jumlah ini, meskipun jumlah pekerja yang lebih tinggi diperlukan untuk menangani beban.ENVIRONMENT_SIZE
dengan ukuran lingkungan,ENVIRONMENT_SIZE_SMALL
,ENVIRONMENT_SIZE_MEDIUM
, atauENVIRONMENT_SIZE_LARGE
.
Contoh:
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
"
}
}
}
Langkah 4. (Opsional) Aktifkan mode ketahanan tinggi
Sangat andal (Ketersediaan Tinggi) Lingkungan Cloud Composer adalah lingkungan yang menggunakan mekanisme failover dan redundansi bawaan yang mengurangi kerentanan lingkungan terhadap kegagalan zona dan gangguan titik tunggal kegagalan.
Lingkungan yang sangat tangguh bersifat multi-zona dan berjalan di setidaknya dua zona dari region yang dipilih. Komponen berikut berjalan di zona terpisah:
Tepat dua penjadwal Airflow
Setidaknya dua pemicu (jika jumlah pemicu tidak disetel ke
0
)Setidaknya dua pemroses DAG
Dua server web
Jumlah minimum worker ditetapkan ke dua, dan cluster lingkungan Anda mendistribusikan instance worker di antara zona. Jika terjadi pemadaman layanan zona, instance pekerja yang terpengaruh akan dijadwalkan ulang di zona lain. Komponen Cloud SQL dari lingkungan yang sangat tangguh memiliki instance utama dan instance standby yang didistribusikan di antara zona.
Konsol
Di halaman Create environment:
Di bagian Mode ketahanan, pilih Ketahanan tinggi.
Di bagian Environment resources, pilih parameter penskalaan untuk lingkungan yang sangat tangguh. Lingkungan yang sangat tangguh memerlukan tepat dua penjadwal, nol atau antara dua dan sepuluh pemicu, serta minimal dua pekerja:
Klik Custom.
Di menu drop-down Number of schedulers, pilih
2
.Di menu drop-down Jumlah pemicu, pilih
0
, atau nilai antara2
dan10
. Konfigurasi alokasi CPU dan Memori untuk pemicu Anda.Di menu drop-down Jumlah minimum pekerja, pilih
2
atau lebih, bergantung pada jumlah pekerja yang diperlukan.
Di bagian Network configuration:
Di Networking type, pilih Private IP environment.
Jika diperlukan, tentukan parameter jaringan lainnya.
gcloud
Saat Anda membuat lingkungan, argumen --enable-high-resilience
mengaktifkan mode ketahanan tinggi.
Tetapkan argumen berikut:
--enable-high-resilience
--enable-private-environment
, dan parameter jaringan lainnya untuk lingkungan IP Pribadi, jika diperlukan--scheduler-count
ke2
--triggerer-count
hingga0
atau nilai antara2
dan10
. Jika Anda menggunakan pemicu, tanda--triggerer-cpu and
--triggerer-memory` juga diperlukan untuk pembuatan lingkungan.Untuk mengetahui informasi selengkapnya tentang flag
--triggerer-count
,--triggerer-cpu
, dan--triggerer-memory
, lihat Mengonfigurasi parameter performa dan penskalaan lingkungan.--min-workers
hingga2
atau lebih
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--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
Saat membuat lingkungan, di resource Environment > EnvironmentConfig, aktifkan mode ketahanan tinggi.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"resilience_mode": "HIGH_RESILIENCE",
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Contoh:
// 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
Saat Anda membuat lingkungan, kolom resilience_mode
di blok config
mengaktifkan mode ketahanan tinggi.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
resilience_mode = "HIGH_RESILIENCE"
node_config {
service_account = "SERVICE_ACCOUNT"
}
}
}
Contoh:
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
"
}
}
}
Langkah 5. (Opsional) Tentukan zona untuk database lingkungan
Anda dapat menentukan zona Cloud SQL pilihan saat membuat lingkungan ketahanan standar.
Konsol
Di halaman Create environment:
Di bagian Konfigurasi lanjutan, luaskan item Tampilkan konfigurasi lanjutan.
Di daftar Airflow database zone, pilih zona Cloud SQL yang diinginkan.
gcloud
Saat Anda membuat lingkungan, argumen --cloud-sql-preferred-zone
menentukan zona Cloud SQL pilihan.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "SERVICE_ACCOUNT" \
--cloud-sql-preferred-zone SQL_ZONE
Ganti kode berikut:
SQL_ZONE
: zona Cloud SQL pilihan. Zona ini harus berada di region tempat lingkungan berada.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--cloud-sql-preferred-zone us-central1-a
API
Saat membuat lingkungan, di resource Environment > DatabaseConfig, tentukan zona Cloud SQL pilihan.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"databaseConfig": {
"zone": "SQL_ZONE"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Ganti kode berikut:
SQL_ZONE
: zona Cloud SQL pilihan. Zona ini harus berada di region tempat lingkungan berada.
Contoh:
// 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
Saat Anda membuat lingkungan, kolom zone
di blok database_config
menentukan zona Cloud SQL pilihan.
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"
}
}
}
Ganti kode berikut:
SQL_ZONE
: zona Cloud SQL pilihan. Zona ini harus berada di region tempat lingkungan berada.
Langkah 6. (Opsional) Mengonfigurasi jaringan lingkungan Anda
Anda dapat mengonfigurasi jaringan Cloud Composer 3 dengan cara berikut:
- Di lingkungan IP Publik, komponen Airflow lingkungan Anda dapat mengakses internet.
- Dalam lingkungan IP Pribadi, komponen Airflow lingkungan Anda tidak memiliki akses ke internet.
- Lingkungan IP Pribadi dan IP Publik dapat terhubung ke jaringan VPC Anda sebagai opsi terpisah.
- Anda dapat menentukan rentang IP internal lingkungan Anda. Rentang ini tidak dapat diubah nanti.
Anda dapat mengaktifkan akses ke internet saat menginstal paket PyPI. Misalnya, lingkungan IP Pribadi Anda tetap dapat menginstal paket PyPI dari Python Package Index jika Anda mengaktifkan opsi ini.
Untuk lingkungan VPC Bersama, Anda harus melakukan penyiapan jaringan tambahan untuk project host, lalu membuat lingkungan IP Publik atau Pribadi di project layanan. Ikuti petunjuk di halaman Mengonfigurasi VPC Bersama.
Konsol
Pastikan jaringan Anda dikonfigurasi untuk jenis lingkungan yang ingin Anda buat.
Di bagian Konfigurasi jaringan, luaskan item Tampilkan konfigurasi jaringan.
Jika Anda ingin menghubungkan lingkungan Anda ke jaringan VPC, di kolom Network attachment, pilih lampiran jaringan. Anda juga dapat membuat lampiran jaringan baru. Untuk mengetahui informasi selengkapnya, lihat Menghubungkan lingkungan ke jaringan VPC.
Jika Anda ingin membuat lingkungan IP Pribadi, di bagian Networking type, pilih opsi Private IP environment.
Jika Anda ingin menambahkan tag jaringan, lihat Menambahkan tag jaringan untuk mengetahui informasi selengkapnya.
gcloud
Pastikan jaringan Anda dikonfigurasi untuk jenis lingkungan yang ingin Anda buat.
Saat Anda membuat lingkungan, argumen berikut mengontrol parameter jaringan. Jika Anda menghilangkan parameter, nilai default akan digunakan.
--enable-private-environment
mengaktifkan lingkungan IP Pribadi.--network
menentukan ID jaringan VPC Anda.--subnetwork
menentukan ID subnetwork VPC Anda.
--composer-internal-ipv4-cidr-block
menentukan rentang IP internal lingkungan. Rentang ini digunakan oleh Cloud Composer di project tenant lingkungan Anda.
Contoh (Lingkungan IP Pribadi dengan jaringan VPC yang terhubung)
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "SERVICE_ACCOUNT" \
--enable-private-environment \
--network NETWORK_ID \
--subnetwork SUBNETWORK_ID \
Ganti:
NETWORK_ID
dengan ID jaringan VPC Anda.SUBNETWORK_ID
dengan ID subnetwork VPC Anda.
Langkah 7. (Opsional) Menambahkan tag jaringan
Tag jaringan diterapkan ke semua VM node di cluster lingkungan Anda. Tag digunakan untuk mengidentifikasi sumber atau target yang valid untuk firewall jaringan. Setiap tag dalam daftar harus mematuhi RFC 1035.
Misalnya, Anda mungkin ingin menambahkan tag jaringan jika berencana membatasi traffic untuk lingkungan IP Pribadi dengan aturan firewall.
Konsol
Di halaman Create environment:
- Cari bagian Konfigurasi jaringan.
- Di kolom Tag jaringan, masukkan tag jaringan untuk lingkungan Anda.
gcloud
Saat Anda membuat lingkungan, argumen berikut mengontrol tag jaringan:
--tags
menentukan daftar tag jaringan yang dipisahkan koma yang diterapkan ke semua VM node.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "SERVICE_ACCOUNT" \
--tags TAGS
Ganti:
TAGS
dengan daftar tag jaringan yang dipisahkan koma.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--tags group1,production
API
Saat membuat lingkungan, di resource Environment > EnvironmentConfig, tentukan tag jaringan untuk lingkungan Anda.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"nodeConfig": {
"tags": [
"TAG"
],
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Ganti:
TAG
dengan tag jaringan.
Contoh:
// 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
Saat Anda membuat lingkungan, kolom berikut menentukan tag jaringan untuk lingkungan Anda:
- Kolom
tags
di bloknode_config
menentukan daftar tag jaringan yang dipisahkan koma dan diterapkan ke semua VM node.
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
config {
node_config {
tags = ["TAGS"]
service_account = "SERVICE_ACCOUNT"
}
}
}
Ganti:
TAGS
dengan daftar tag jaringan yang dipisahkan koma.
Contoh:
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
"
}
}
}
Langkah 8. (Opsional) Mengonfigurasi akses jaringan server web
Parameter akses server web Airflow tidak bergantung pada jenis lingkungan Anda. Sebagai gantinya, Anda dapat mengonfigurasi akses server web secara terpisah. Misalnya, lingkungan IP Pribadi masih dapat membuat UI Airflow dapat diakses dari internet.
Anda tidak dapat mengonfigurasi rentang IP yang diizinkan menggunakan alamat IP pribadi.
Konsol
Di halaman Create environment:
Di bagian Konfigurasi jaringan, luaskan item Tampilkan konfigurasi jaringan.
Di bagian Kontrol akses jaringan server web:
Untuk memberikan akses ke server web Airflow dari semua alamat IP, pilih Izinkan akses dari semua alamat IP.
Untuk membatasi akses hanya ke rentang IP tertentu, pilih Izinkan akses hanya dari alamat IP tertentu. Di kolom Rentang IP, tentukan rentang IP dalam notasi CIDR. Di kolom Deskripsi, tentukan deskripsi opsional untuk rentang ini. Jika Anda ingin menentukan lebih dari satu rentang, klik Tambahkan rentang IP.
Untuk melarang akses ke semua alamat IP, pilih Izinkan akses hanya dari alamat IP tertentu dan klik Hapus item di samping entri rentang kosong.
gcloud
Saat Anda membuat lingkungan, argumen berikut mengontrol tingkat akses server web:
--web-server-allow-all
memberikan akses ke Airflow dari semua alamat IP. Opsi ini adalah opsi default.--web-server-allow-ip
membatasi akses hanya ke rentang IP sumber tertentu. Untuk menentukan beberapa rentang IP, gunakan argumen ini beberapa kali.--web-server-deny-all
melarang akses untuk semua alamat IP.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Ganti:
WS_IP_RANGE
dengan rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTION
dengan deskripsi rentang IP.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--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
Saat membuat lingkungan, di resource Environment > EnvironmentConfig, tentukan parameter akses server web.
Untuk memberikan akses ke server web Airflow dari semua alamat IP, hapus
webServerNetworkAccessControl
.Untuk membatasi akses hanya ke rentang IP tertentu, tentukan satu atau beberapa rentang di
allowedIpRanges
.Untuk melarang akses ke semua alamat IP, tambahkan
allowedIpRanges
dan jadikan daftar kosong. Jangan tentukan rentang IP di dalamnya.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Ganti:
WS_IP_RANGE
dengan rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTION
dengan deskripsi rentang IP.
Contoh:
// 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
Saat Anda membuat lingkungan, blok allowed_ip_range
di blok web_server_network_access_control
berisi rentang IP yang dapat mengakses server 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"
}
}
}
Ganti:
WS_IP_RANGE
dengan rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTION
dengan deskripsi rentang IP.
Contoh:
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
"
}
}
Langkah 9. (Opsional) Tentukan penggantian konfigurasi Airflow dan variabel lingkungan
Anda dapat menyiapkan penggantian konfigurasi Airflow dan variabel lingkungan saat membuat lingkungan. Sebagai alternatif, Anda dapat melakukannya nanti, setelah lingkungan dibuat.
Beberapa opsi konfigurasi Airflow diblokir dan Anda tidak dapat menggantinya.
Untuk mengetahui daftar opsi konfigurasi Airflow yang tersedia, lihat Referensi konfigurasi untuk Airflow 2 dan Airflow 1.10.*
Untuk menentukan penggantian konfigurasi dan variabel lingkungan Airflow:
Konsol
Di halaman Create environment:
Di bagian Environment variables, klik Add environment variable.
Masukkan Nama dan Nilai untuk variabel lingkungan.
Di bagian Penggantian konfigurasi Airflow, klik Tambahkan penggantian konfigurasi Airflow.
Masukkan Bagian, Kunci, dan Nilai untuk penggantian opsi konfigurasi.
Contoh:
Bagian Kunci Nilai webserver
dag_orientation
TB
gcloud
Saat Anda membuat lingkungan, argumen berikut mengontrol variabel lingkungan dan penggantian konfigurasi Airflow:
--env-variables
menentukan daftar variabel lingkungan yang dipisahkan koma.Nama variabel dapat berisi huruf besar dan kecil, angka, dan garis bawah, tetapi tidak boleh diawali dengan angka.
--airflow-configs
menentukan daftar kunci dan nilai yang dipisahkan koma untuk penggantian konfigurasi Airflow.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "SERVICE_ACCOUNT" \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Ganti:
ENV_VARS
dengan daftar pasanganNAME=VALUE
yang dipisahkan koma untuk variabel lingkungan.CONFIG_OVERRIDES
dengan daftar pasanganSECTION-KEY=VALUE
yang dipisahkan koma untuk penggantian konfigurasi. Pisahkan nama bagian konfigurasi dengan simbol-
, diikuti dengan nama kunci. Contoh:core-dags_are_paused_at_creation
.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--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
Saat membuat lingkungan, di resource Environment > EnvironmentConfig, tentukan variabel lingkungan dan penggantian konfigurasi 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"
}
}
}
Ganti:
SECTION
dengan bagian dalam file konfigurasi tempat opsi konfigurasi Airflow berada.KEY
dengan nama opsi konfigurasi Airflow.OVERRIDE_VALUE
dengan nilai opsi konfigurasi Airflow.VAR_NAME
dengan nama variabel lingkungan.VAR_VALUE
dengan nilai variabel lingkungan.
Contoh:
// 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
Saat Anda membuat lingkungan, blok berikut mengontrol variabel lingkungan dan penggantian konfigurasi Airflow:
Blok
env_variables
di bloksoftware_config
menentukan variabel lingkungan.Nama variabel dapat berisi huruf besar dan kecil, angka, dan garis bawah, tetapi tidak boleh diawali dengan angka.
Blok
airflow_config_overrides
dalam bloksoftware_config
menentukan penggantian konfigurasi 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"
}
}
}
Ganti:
SECTION
dengan bagian dalam file konfigurasi tempat opsi konfigurasi Airflow berada.KEY
dengan nama opsi konfigurasi Airflow.OVERRIDE_VALUE
dengan nilai opsi konfigurasi Airflow.VAR_NAME
dengan nama variabel lingkungan.VAR_VALUE
dengan nilai variabel lingkungan.
Contoh:
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
"
}
}
}
Langkah 10. (Opsional) Tentukan masa pemeliharaan
Masa pemeliharaan default di Cloud Composer 3 ditentukan dengan cara berikut:
- Semua waktu menggunakan zona waktu lokal wilayah tempat lingkungan Anda berada, tetapi dengan waktu musim panas diabaikan.
- Pada hari Selasa, Rabu, Kamis, dan Jumat, masa pemeliharaan adalah dari 00.00.00 hingga 02.00.00.
- Pada hari Sabtu, Minggu, dan Senin, masa pemeliharaan berlangsung dari 00.00.00 hingga 04.00.00.
Untuk menentukan masa pemeliharaan kustom untuk lingkungan Anda:
Konsol
Di halaman Create environment
Temukan bagian Masa pemeliharaan.
Di menu drop-down Zona waktu, pilih zona waktu untuk periode pemeliharaan.
Tetapkan Waktu mulai, Hari, dan Durasi, sehingga:
Setidaknya 12 jam waktu dialokasikan dalam satu minggu.
Anda dapat menggunakan beberapa slot waktu, tetapi durasi setiap slot harus minimal 4 jam.
Misalnya, periode 4 jam setiap hari Senin, Rabu, dan Jumat memberikan jumlah waktu yang diperlukan.
gcloud
Argumen berikut menentukan parameter periode pemeliharaan:
--maintenance-window-start
menetapkan waktu mulai masa pemeliharaan.--maintenance-window-end
menetapkan waktu berakhir masa pemeliharaan.--maintenance-window-recurrence
menetapkan pengulangan masa pemeliharaan.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "SERVICE_ACCOUNT" \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.DATETIME_START
dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.DATETIME_END
dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.MAINTENANCE_RECURRENCE
dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:Format
FREQ=DAILY
menentukan pengulangan harian.Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
menentukan pengulangan pada hari dalam seminggu yang dipilih.
Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 diabaikan.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--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
Saat Anda membuat lingkungan, di Environment > EnvironmentConfig resource, tentukan parameter periode pemeliharaan:
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"config": {
"maintenanceWindow": {
"startTime": "DATETIME_START",
"endTime": "DATETIME_END",
"recurrence": "MAINTENANCE_RECURRENCE"
},
"nodeConfig": {
"serviceAccount": "SERVICE_ACCOUNT"
}
}
}
Ganti:
DATETIME_START
dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.DATETIME_END
dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.MAINTENANCE_RECURRENCE
dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:Format
FREQ=DAILY
menentukan pengulangan harian.Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
menentukan pengulangan pada hari dalam seminggu yang dipilih.
Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 diabaikan.
Contoh:
// 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
Blok maintenance_window
menentukan masa pemeliharaan untuk lingkungan Anda:
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"
}
}
}
Ganti:
DATETIME_START
dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.DATETIME_END
dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.MAINTENANCE_RECURRENCE
dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:- Format
FREQ=DAILY
menentukan pengulangan harian. - Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA
menentukan pengulangan pada hari dalam seminggu yang dipilih.
- Format
Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 diabaikan.
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"
}
}
}
Langkah 11. (Opsional) Integrasi asal data
Silsilah data adalah fitur Dataplex Universal Catalog yang memungkinkan Anda melacak pergerakan data.
Integrasi silsilah data tersedia di semua versi Cloud Composer 3.Integrasi silsilah data diaktifkan secara otomatis di lingkungan Cloud Composer baru jika kondisi berikut terpenuhi:
Data Lineage API diaktifkan di project Anda. Untuk mengetahui informasi selengkapnya, lihat bagian Mengaktifkan Data Lineage API di dokumentasi Dataplex Universal Catalog.
Backend Silsilah kustom tidak dikonfigurasi di Airflow.
Anda dapat menonaktifkan integrasi silsilah data saat membuat lingkungan. Misalnya, jika Anda ingin mengganti perilaku otomatis atau memilih untuk mengaktifkan silsilah data nanti, setelah lingkungan dibuat.
Konsol
Untuk menonaktifkan Integrasi silsilah data, di halaman Buat lingkungan:
Di bagian Konfigurasi lanjutan, luaskan item Tampilkan konfigurasi lanjutan.
Di bagian Integrasi silsilah data Dataplex, pilih Nonaktifkan integrasi dengan silsilah data Dataplex.
gcloud
Saat Anda membuat lingkungan, argumen --disable-cloud-data-lineage-integration
menonaktifkan integrasi silsilah data.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "SERVICE_ACCOUNT" \
--disable-cloud-data-lineage-integration
Ganti:
ENVIRONMENT_NAME
dengan nama lingkungan.LOCATION
dengan region tempat lingkungan berada.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--disable-cloud-data-lineage-integration
Langkah 12. (Opsional) Mengonfigurasi enkripsi data (CMEK)
Secara default, data di lingkungan Anda dienkripsi dengan kunci yang disediakan oleh Google.
Untuk menggunakan kunci enkripsi yang dikelola pelanggan (CMEK) guna mengenkripsi data di lingkungan Anda, ikuti petunjuk yang diuraikan dalam Menggunakan kunci enkripsi yang dikelola pelanggan.
Langkah 13. (Opsional) Menggunakan bucket lingkungan kustom
Saat Anda membuat lingkungan, Cloud Composer akan membuat bucket untuk lingkungan Anda secara otomatis.
Sebagai alternatif, Anda dapat menentukan bucket Cloud Storage kustom dari project Anda. Lingkungan Anda menggunakan bucket ini dengan cara yang sama seperti bucket yang dibuat secara otomatis.
Untuk menggunakan bucket lingkungan kustom, ikuti petunjuk yang diuraikan dalam Menggunakan bucket lingkungan kustom.
Langkah 14. (Opsional) Mengonfigurasi retensi database
Jika Anda mengaktifkan retensi database di lingkungan Anda, Cloud Composer akan menghapus secara berkala catatan terkait eksekusi DAG dan sesi pengguna yang lebih lama dari jangka waktu yang ditentukan dari database Airflow. Informasi eksekusi DAG terbaru selalu dipertahankan.
Secara default, retensi database diaktifkan. Untuk mengonfigurasi periode retensi untuk lingkungan baru atau menonaktifkan retensi database, ikuti petunjuk yang diuraikan dalam Mengonfigurasi kebijakan retensi database. Anda juga dapat mengonfigurasi retensi database nanti.
Langkah 15. (Opsional) Tentukan label lingkungan
Anda dapat menetapkan label ke lingkungan untuk mengelompokkan biaya penagihan berdasarkan label ini.
Konsol
Di halaman Create environment, di bagian Labels:
Klik Tambahkan label.
Di kolom Key dan Value, tentukan pasangan nilai kunci untuk label lingkungan.
gcloud
Saat Anda membuat lingkungan, argumen --labels
menentukan daftar kunci dan nilai yang dipisahkan koma dengan label lingkungan.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "SERVICE_ACCOUNT" \
--labels LABELS
Ganti:
LABELS
dengan daftar pasanganKEY=VALUE
yang dipisahkan koma untuk label lingkungan.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.10.5-build.10 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--labels owner=engineering-team,env=production
API
Saat membuat lingkungan, di resource Environment, tentukan label untuk lingkungan Anda.
{
"name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"labels": {
"LABEL_KEY": "LABEL_VALUE"
}
}
Ganti:
LABEL_KEY
dengan kunci label lingkungan.LABEL_VALUE
dengan nilai label lingkungan.
Contoh:
// 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
Saat membuat lingkungan, tentukan label di blok labels
(
di luar blok config
).
resource "google_composer_environment" "example" {
provider = google-beta
name = "ENVIRONMENT_NAME"
region = "LOCATION"
labels = {
LABEL_KEY = "LABEL_VALUE"
}
}
Ganti:
LABEL_KEY
dengan kunci label lingkungan.LABEL_VALUE
dengan nilai label lingkungan.
Contoh:
resource "google_composer_environment" "example" {
provider = google-beta
name = "example-environment"
region = "us-central1"
labels = {
owner = "engineering-team"
env = "production"
}
}
Langkah berikutnya
- Memecahkan masalah pembuatan lingkungan
- Mengonfigurasi VPC Bersama
- Mengonfigurasi Kontrol Layanan VPC
- Menambahkan dan memperbarui DAG
- Mengakses UI Airflow
- Memperbarui dan menghapus lingkungan
- Tentang versi Cloud Composer