Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Halaman ini menjelaskan cara membuat lingkungan Managed Airflow.
- 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 Managed Airflow, lihat Layanan yang diperlukan oleh Managed Airflow.
Aktifkan grup layanan dengan API yang diperlukan oleh Managed Airflow (Gen 2).
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.createyang diaktifkan.Untuk mengetahui informasi selengkapnya tentang akun layanan untuk Terraform, lihat Referensi Konfigurasi Penyedia Google.
Untuk mengetahui informasi selengkapnya tentang cara menggunakan Terraform untuk membuat lingkungan Managed Airflow, lihat dokumentasi Terraform.
Untuk mengetahui informasi selengkapnya tentang parameter tambahan, lihat Referensi Argumen Terraform.
IP Pribadi: Ada persyaratan jaringan dan peering khusus untuk membuat lingkungan IP Pribadi. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi IP pribadi.
VPC Bersama: Ada persyaratan jaringan khusus untuk menggunakan VPC Bersama dengan Managed Airflow. Untuk mengetahui informasinya, lihat Mengonfigurasi VPC bersama.
VPC SC: Untuk men-deploy lingkungan Managed Airflow di dalam perimeter keamanan, lihat Mengonfigurasi VPC SC. Jika digunakan dengan Managed Airflow, Kontrol Layanan VPC memiliki beberapa batasan yang diketahui.
Anda mungkin melihat entri metadata Compute Engine untuk cluster GKE yang termasuk dalam lingkungan di project Anda. Selama pembuatan dan upgrade cluster GKE, Google Kubernetes Engine otomatis menambahkan entri metadata level project (
google_compute_project_metadata) untuk melacak penggunaan rentang alamat IP sekunder. Jangan ubah atau hapus entri ini. Google Kubernetes Engine mengelolanya secara otomatis.
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 Managed Airflow di project, buat akun layanan tersebut.
Lihat Membuat lingkungan (Terraform) untuk mengetahui contoh lengkap 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).Jika lingkungan Anda menggunakan batasan lokasi resource, atau menginstal paket PyPI dari repositori Artifact Registry atau dari repositori pribadi, berikan peran Service Account User (
iam.serviceAccountUser) ke akun layanan yang dikelola pengguna yang menjalankan lingkungan Anda sendiri (baik akun utama maupun resource adalah akun layanan yang sama).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 operasi DAG Anda.
Langkah 2. Penyiapan dasar
Langkah ini membuat lingkungan Managed Airflow dengan parameter default di lokasi yang ditentukan.
Semua langkah lainnya dalam panduan ini menjelaskan cara menyesuaikan dan mengonfigurasi berbagai aspek lingkungan Anda. Semua langkah selanjutnya bersifat opsional.
Konsol
Di konsol Google Cloud , buka halaman Create environment.
Di kolom Name, masukkan nama untuk lingkungan Anda.
Nama harus diawali dengan huruf kecil yang diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen bagi lingkungan, sehingga Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Panduan penamaan bucket untuk mengetahui daftar pembatasan.
Di menu drop-down Lokasi, pilih lokasi untuk lingkungan Anda.
Lokasi adalah region tempat lingkungan berada.
Di menu drop-down Image version, pilih Managed Airflow image 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_NAMEdengan nama lingkungan.Nama harus diawali dengan huruf kecil yang diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen bagi lingkungan, sehingga Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Pedoman penamaan bucket untuk mengetahui daftar batasan.
LOCATIONdengan region untuk lingkungan.Lokasi adalah region tempat lingkungan berada.
SERVICE_ACCOUNTdengan akun layanan untuk lingkungan Anda.IMAGE_VERSIONdengan nama image Managed Airflow.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.15-airflow-2.11.1 \
--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_IDdengan Project ID.LOCATIONdengan region untuk lingkungan.Lokasi adalah region tempat lingkungan berada.
ENVIRONMENT_NAMEdengan nama lingkungan.Nama harus diawali dengan huruf kecil yang diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen bagi lingkungan, jadi Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Pedoman penamaan bucket untuk mengetahui daftar batasan.
IMAGE_VERSIONdengan nama image Managed Airflow.SERVICE_ACCOUNTdengan 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-2.17.15-airflow-2.11.1"
},
"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_NAMEdengan nama lingkungan.Nama harus dimulai dengan huruf kecil yang diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen bagi lingkungan, jadi Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Panduan penamaan bucket untuk mengetahui daftar pembatasan.
LOCATIONdengan region untuk lingkungan.Lokasi adalah region tempat lingkungan berada.
IMAGE_VERSIONdengan nama image Managed Airflow.SERVICE_ACCOUNTdengan 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-2.17.15-airflow-2.11.1"
}
node_config {
service_account = "
example-account@example-project.iam.gserviceaccount.com
"
}
}
}
Langkah 3. Memberikan izin yang diperlukan ke akun layanan Managed Airflow
Saat Anda mengaktifkan Cloud Composer API di project, akun Agen Layanan Composer akan dibuat di project Anda. Managed Airflow menggunakan akun ini untuk melakukan operasi di projectGoogle Cloud Anda.
Peran Cloud Composer v2 API Service Agent Extension memberikan izin tambahan ke akun Managed Airflow Service Agent. Peran ini tidak diberikan secara otomatis. Anda harus memberikan izin secara manual.
Konsol
Saat Anda membuat lingkungan di project Anda, jika Agen Layanan Airflow Terkelola tidak memiliki izin yang diperlukan di akun layanan lingkungan, bagian Berikan izin yang diperlukan ke akun layanan Cloud Composer akan muncul.
Anda menambahkan akun Agen Layanan Airflow Terkelola sebagai akun utama baru di akun layanan lingkungan Anda dan memberinya peran Ekstensi Agen Layanan Cloud Composer v2 API.
Konfirmasi bahwa Anda menggunakan akun layanan yang dimaksudkan untuk lingkungan Anda, lalu klik Grant.
gcloud
Anda menambahkan akun Agen Layanan Airflow Terkelola sebagai akun utama baru di akun layanan lingkungan Anda dan memberinya peran Ekstensi Agen Layanan Cloud Composer v2 API.
gcloud iam service-accounts add-iam-policy-binding \
SERVICE_ACCOUNT \
--member serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
--role roles/composer.ServiceAgentV2Ext
Ganti:
SERVICE_ACCOUNTdengan akun layanan untuk lingkungan Anda.PROJECT_NUMBERdengan Project number.
Contoh:
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
Untuk memberikan peran, Anda harus mengubah kebijakan izin yang ada menggunakan pola baca-ubah-tulis:
- Baca kebijakan izin yang ada untuk akun layanan lingkungan Anda.
- Ubah untuk menyertakan peran
roles/composer.ServiceAgentV2Extuntuk Agen Layanan Airflow Terkelola. - Menulis ulang kebijakan izin yang ada.
Untuk mengetahui informasi selengkapnya, lihat Mengontrol akses secara terprogram.
{
"role": "roles/composer.ServiceAgentV2Ext",
"members": [
"serviceAccount:service-PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com"
]
}
Ganti:
PROJECT_NUMBERdengan Nomor project.
Contoh:
{
"role": "roles/composer.ServiceAgentV2Ext",
"members": [
"serviceAccount:service-00000000000@cloudcomposer-accounts.iam.gserviceaccount.com"
]
}
Terraform
Tambahkan binding peran baru ke kebijakan izin akun layanan lingkungan Anda.
Anda menambahkan akun Managed Airflow Service Agent sebagai akun utama baru di akun layanan lingkungan Anda dan memberikan peran Ekstensi Agen Layanan API Cloud Composer v2 kepadanya.
Jika Anda tidak menggunakan Terraform untuk menentukan kebijakan izin akun layanan lingkungan, jangan gunakan contoh berikut. Sebagai gantinya, tambahkan binding ini menggunakan metode lain.
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"
}
Ganti:
SERVICE_ACCOUNTdengan akun layanan untuk lingkungan Anda.PROJECT_NUMBERdengan Nomor project.
Contoh:
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"
}
Langkah 4. (Opsional) Mengonfigurasi parameter skala dan performa lingkungan
Untuk menentukan konfigurasi performa dan skala 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 Managed Airflow terkelola yang mencakup database Airflow. Pertimbangkan untuk memilih ukuran lingkungan yang lebih besar jika Anda ingin menjalankan banyak 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 operasi 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.
Meningkatkan 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 jika penjadwal tambahan tidak digunakan, sehingga menggunakan resource lingkungan Anda tanpa berkontribusi pada 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 kembali lingkungan ke jumlah penjadwal awal.
Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi beberapa penjadwal, lihat dokumentasi Airflow.
Pemicu Airflow. Memantau semua tugas yang ditangguhkan di lingkungan Anda secara asinkron. Jika Anda 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 Managed Airflow (Gen 2), pemicu Airflow dinonaktifkan secara default. Jika Anda ingin membuat lingkungan dengan pemicu, tetapkan jumlah pemicu ke satu atau lebih.
Server web Airflow. Menjalankan antarmuka web Airflow tempat Anda dapat memantau, mengelola, dan memvisualisasikan DAG.
Worker 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 otomatis dipilih. 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, di bagian Environment resources, klik Small, Medium, 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 Triggerer, gunakan kolom Number of triggerers untuk memasukkan jumlah pemicu di lingkungan Anda.
Jika Anda tidak ingin menggunakan operator yang dapat ditangguhkan di DAG, tetapkan jumlah pemicu ke nol. Secara default, pemicu dinonaktifkan di Managed Airflow (Gen 2).
Jika Anda menetapkan setidaknya satu pemicu untuk lingkungan Anda, gunakan kolom CPU, dan Memori untuk mengonfigurasi alokasi resource untuk pemicu Anda.
Di bagian DAG processor, tentukan jumlah pemroses DAG di lingkungan Anda dan 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 worker 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-sizemenentukan ukuran lingkungan.--scheduler-countmenentukan jumlah penjadwal.--scheduler-cpumenentukan jumlah CPU untuk scheduler Airflow.--scheduler-memorymenentukan jumlah memori untuk penjadwal Airflow.--scheduler-storagemenentukan jumlah kapasitas disk untuk penjadwal Airflow.--triggerer-countmenentukan jumlah pemicu Airflow di lingkungan Anda. Nilai default untuk tanda ini adalah0. Anda memerlukan pemicu jika ingin menggunakan operator yang dapat ditangguhkan di DAG Anda.- Untuk lingkungan ketahanan standar, gunakan nilai antara
0dan10. - Untuk lingkungan yang sangat tangguh, gunakan
0atau nilai antara2dan10.
- Untuk lingkungan ketahanan standar, gunakan nilai antara
--triggerer-cpumenentukan jumlah CPU untuk pemicu Airflow, dalam unit vCPU. Nilai yang diizinkan:0.5,0.75,1. Nilai default-nya adalah0.5.--triggerer-memorymenentukan 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 dengan 6,5.
Misalnya, jika Anda menetapkan flag
--triggerer-cpuke1, nilai minimum untuk--triggerer-memoryadalah1dan nilai maksimum adalah6.5.--web-server-cpumenentukan jumlah CPU untuk server web Airflow.--web-server-memorymenentukan jumlah memori untuk server web Airflow.--web-server-storagemenentukan jumlah kapasitas disk untuk server web Airflow.--worker-cpumenentukan jumlah CPU untuk worker Airflow.--worker-memorymenentukan jumlah memori untuk worker Airflow.--worker-storagemenentukan jumlah kapasitas disk untuk worker Airflow.--min-workersmenentukan jumlah minimum worker Airflow. Cluster lingkungan Anda menjalankan setidaknya jumlah worker ini.--max-workersmenentukan jumlah maksimum worker Airflow. Cluster lingkungan Anda menjalankan maksimal jumlah worker ini.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--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
Ganti:
ENVIRONMENT_SIZEdengansmall,medium,large.SCHEDULER_COUNTdengan jumlah penjadwal.SCHEDULER_CPUdengan jumlah CPU untuk penjadwal, dalam unit vCPU.SCHEDULER_MEMORYdengan jumlah memori untuk scheduler.SCHEDULER_STORAGEdengan ukuran disk untuk penjadwal.TRIGGERER_COUNTdengan jumlah pemicu.TRIGGERER_CPUdengan jumlah CPU untuk pemicu, dalam unit vCPU.TRIGGERER_MEMORYdengan jumlah memori untuk pemicu, dalam GB.WEB_SERVER_CPUdengan jumlah CPU untuk server web, dalam unit vCPU.WEB_SERVER_MEMORYdengan jumlah memori untuk server web.WEB_SERVER_STORAGEdengan jumlah memori untuk server web.WORKER_CPUdengan jumlah CPU untuk pekerja, dalam satuan vCPU.WORKER_MEMORYdengan jumlah memori untuk pekerja.WORKER_STORAGEdengan ukuran disk untuk worker.WORKERS_MINdengan jumlah minimum worker Airflow yang dapat dijalankan oleh lingkungan Anda. Jumlah worker di lingkungan Anda tidak akan melebihi jumlah ini, meskipun jumlah worker yang lebih rendah dapat menangani beban.WORKERS_MAXdengan jumlah maksimum worker Airflow yang dapat dijalankan oleh lingkungan Anda. Jumlah worker di lingkungan Anda tidak akan melebihi jumlah ini, meskipun jumlah worker yang lebih tinggi diperlukan untuk menangani beban.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.15-airflow-2.11.1 \
--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
Saat membuat lingkungan, di resource Environment > EnvironmentConfig > WorkloadsConfig, tentukan parameter performa dan penskalaan 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
},
"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_CPUdengan jumlah CPU untuk penjadwal, dalam unit vCPU.SCHEDULER_MEMORYdengan jumlah memori untuk penjadwal, dalam GB.SCHEDULER_STORAGEdengan ukuran disk untuk penjadwal, dalam GB.SCHEDULER_COUNTdengan jumlah penjadwal.TRIGGERER_COUNTdengan jumlah pemicu. Nilai defaultnya adalah0. Anda memerlukan pemicu jika ingin menggunakan operator yang dapat ditangguhkan di DAG Anda.- Untuk lingkungan ketahanan standar, gunakan nilai antara
0dan10. - Untuk lingkungan yang sangat tangguh, gunakan
0atau nilai antara2dan10.
Jika menggunakan setidaknya satu pemicu, Anda juga harus menentukan parameter
TRIGGERER_CPUdanTRIGGERER_MEMORY:- Untuk lingkungan ketahanan standar, gunakan nilai antara
TRIGGERER_CPUmenentukan jumlah CPU untuk pemicu, dalam unit vCPU. Nilai yang diizinkan:0.5,0.75,1.TRIGGERER_MEMORYmengonfigurasi 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 6,5.Misalnya, jika Anda menyetel
TRIGGERER_CPUke1, nilai minimum untukTRIGGERER_MEMORYadalah1dan nilai maksimum adalah6.5.WEB_SERVER_CPUdengan jumlah CPU untuk server web, dalam unit vCPU.WEB_SERVER_MEMORYdengan jumlah memori untuk server web, dalam GB.WEB_SERVER_STORAGEdengan ukuran disk untuk server web, dalam GB.WORKER_CPUdengan jumlah CPU untuk worker, dalam unit vCPU.WORKER_MEMORYdengan jumlah memori untuk pekerja, dalam GB.WORKER_STORAGEdengan ukuran disk untuk worker, dalam GB.WORKERS_MINdengan jumlah minimum worker Airflow yang dapat dijalankan oleh lingkungan Anda. Jumlah worker di lingkungan Anda tidak akan melebihi jumlah ini, meskipun jumlah worker yang lebih rendah dapat menangani beban.WORKERS_MAXdengan 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_SIZEdengan ukuran lingkungan:ENVIRONMENT_SIZE_SMALL,ENVIRONMENT_SIZE_MEDIUM,ENVIRONMENT_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
},
"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_sizemengontrol ukuran lingkungan.
- Kolom
Di blok
workloads_config:- Kolom
scheduler.cpumenentukan jumlah CPU untuk penjadwal Airflow. - Kolom
scheduler.memory_gbmenentukan jumlah memori untuk penjadwal Airflow. - Kolom
scheduler.storage_gbmenentukan jumlah kapasitas disk untuk penjadwal. - Kolom
scheduler.countmenentukan jumlah penjadwal di lingkungan Anda. - Kolom
triggerer.cpumenentukan jumlah CPU untuk pemicu Airflow. - Kolom
triggerer.memory_gbmenentukan jumlah memori untuk pemicu Airflow. Kolom
triggerer.countmenentukan jumlah pemicu di lingkungan Anda.Kolom
web_server.cpumenentukan jumlah CPU untuk server web Airflow.Kolom
web_server.memory_gbmenentukan jumlah memori untuk server web Airflow.Kolom
web_server.storage_gbmenentukan jumlah kapasitas disk untuk server web Airflow.Kolom
worker.cpumenentukan jumlah CPU untuk worker Airflow.Kolom
worker.memory_gbmenentukan jumlah memori untuk worker Airflow.Kolom
worker.storage_gbmenentukan jumlah kapasitas disk untuk worker Airflow.Kolom
worker.min_countmenentukan jumlah minimum worker di lingkungan Anda.Kolom
worker.max_countmenentukan jumlah maksimum worker 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
}
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_NAMEdengan nama lingkungan.LOCATIONdengan region tempat lingkungan berada.SERVICE_ACCOUNTdengan akun layanan untuk lingkungan Anda.SCHEDULER_CPUdengan jumlah CPU untuk penjadwal, dalam unit vCPU.SCHEDULER_MEMORYdengan jumlah memori untuk penjadwal, dalam GB.SCHEDULER_STORAGEdengan ukuran disk untuk penjadwal, dalam GB.SCHEDULER_COUNTdengan jumlah penjadwal.TRIGGERER_COUNTdengan jumlah pemicu.TRIGGERER_CPUdengan jumlah CPU untuk pemicu, dalam unit vCPU.TRIGGERER_MEMORYdengan jumlah memori untuk pemicu, dalam GB.WEB_SERVER_CPUdengan jumlah CPU untuk server web, dalam unit vCPU.WEB_SERVER_MEMORYdengan jumlah memori untuk server web, dalam GB.WEB_SERVER_STORAGEdengan ukuran disk untuk server web, dalam GB.WORKER_CPUdengan jumlah CPU untuk worker, dalam unit vCPU.WORKER_MEMORYdengan jumlah memori untuk pekerja, dalam GB.WORKER_STORAGEdengan ukuran disk untuk worker, dalam GB.WORKERS_MINdengan jumlah minimum worker Airflow yang dapat dijalankan oleh lingkungan Anda. Jumlah worker di lingkungan Anda tidak akan melebihi jumlah ini, meskipun jumlah worker yang lebih rendah dapat menangani beban.WORKERS_MAXdengan 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_SIZEdengan ukuran lingkungan:ENVIRONMENT_SIZE_SMALL,ENVIRONMENT_SIZE_MEDIUM,ENVIRONMENT_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 5. (Opsional) Mengaktifkan mode ketahanan tinggi
Sangat andal (Sangat Tersedia) Lingkungan Airflow terkelola adalah lingkungan yang menggunakan mekanisme failover dan redundansi bawaan yang mengurangi kerentanan lingkungan terhadap kegagalan zonal 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 scheduler Airflow
Setidaknya dua pemicu (jika jumlah pemicu tidak ditetapkan ke
0)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 skala untuk lingkungan yang sangat tangguh. Lingkungan yang sangat tangguh memerlukan tepat dua penjadwal, nol atau antara dua dan sepuluh pemicu, serta setidaknya dua worker:
Klik Custom.
Di menu drop-down Number of schedulers, pilih
2.Di menu drop-down Number of triggerers, pilih
0, atau nilai antara2dan10. Konfigurasikan alokasi CPU dan Memori untuk pemicu Anda.Di menu drop-down Minimum number of workers, pilih
2atau lebih, bergantung pada jumlah worker 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-countke2--triggerer-counthingga0atau nilai antara2dan10. Jika Anda menggunakan pemicu, flag--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 skala dan performa lingkungan.--min-workershingga2atau lebih
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--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 Anda 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 6. (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 yang diinginkan.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--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-2.17.15-airflow-2.11.1 \
--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 yang diinginkan.
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 7. (Opsional) Mengonfigurasi jaringan lingkungan Anda
Parameter jaringan bergantung pada jenis lingkungan yang ingin Anda buat:
Lingkungan IP publik. Gunakan parameter jaringan default.
Lingkungan IP pribadi (dengan PSC). Dalam konfigurasi ini, lingkungan Anda menggunakan Private Service Connect untuk konektivitas.
Konfigurasikan lingkungan IP Pribadi Anda:
- Konfigurasikan jaringan project Anda untuk lingkungan IP Pribadi.
- Konfigurasikan Private Service Connect saat Anda membuat lingkungan.
- Tentukan parameter lain untuk lingkungan IP Pribadi Anda, seperti yang dijelaskan lebih lanjut di bagian ini.
Untuk lingkungan IP Pribadi dengan PSC, Anda perlu mengetahui:
- ID jaringan VPC Anda
- ID subnetwork VPC Anda
Dua rentang IP sekunder di subnetwork VPC Anda:
- Rentang IP sekunder untuk pod
- Rentang IP sekunder untuk layanan
Rentang IP untuk komponen lingkungan:
- Rentang IP Bidang Kontrol GKE. Rentang IP untuk bidang kontrol GKE.
- Subnetwork koneksi Managed Airflow. Rentang IP untuk subnetwork koneksi Managed Airflow.
Lingkungan IP pribadi (peering VPC). Dalam konfigurasi ini, lingkungan Anda menggunakan peering VPC untuk konektivitas.
Konfigurasikan lingkungan IP Pribadi Anda:
- Konfigurasi jaringan project Anda untuk lingkungan IP Pribadi.
- Tentukan parameter lain untuk lingkungan IP Pribadi Anda, seperti yang dijelaskan lebih lanjut di bagian ini.
Untuk lingkungan IP Pribadi dengan peering VPC, Anda perlu mengetahui:
- ID jaringan VPC Anda
- ID subnetwork VPC Anda
Dua rentang IP sekunder di subnetwork VPC Anda:
- Rentang IP sekunder untuk pod
- Rentang IP sekunder untuk layanan
Rentang IP untuk komponen lingkungan:
Rentang IP untuk bidang kontrol GKE.
Rentang IP untuk peering VPC yang akan diekspor dari jaringan Managed Airflow internal ke jaringan yang dipilih. Komponen infrastruktur Managed Airflow menggunakan alamat IP dari rentang ini.
Rentang IP untuk instance Cloud SQL.
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.
Untuk lingkungan VPC Bersama, Anda perlu mengetahui:
- ID jaringan VPC project host Anda
ID subnetwork VPC project host Anda
Dua rentang IP sekunder di subnetwork VPC project host Anda:
- Rentang IP sekunder untuk pod
- Rentang IP sekunder untuk layanan
Saat membuat lingkungan VPC Bersama IP Publik, Anda tetap perlu menentukan jaringan VPC, subnetwork, dan rentang IP sekunder project host untuk pod dan layanan.
Untuk membuat lingkungan VPC SC, Anda harus membuat perimeter layanan, lalu membuat lingkungan IP Pribadi di dalam perimeter ini. Ikuti petunjuk yang diuraikan dalam Mengonfigurasi Kontrol Layanan VPC.
Untuk membuat lingkungan dengan Penggunaan Endpoint yang Dibatasi, Anda harus memiliki kebijakan organisasi
constraints/gcp.restrictEndpointUsageyang sudah dikonfigurasi, lalu membuat lingkungan Managed Airflow (Gen 2) baru. Lingkungan IP pribadi memerlukan penyiapan jaringan tambahan. Ikuti petunjuk yang diuraikan dalam Mengonfigurasi lingkungan dengan kebijakan Batasi Penggunaan Endpoint.
Opsi jaringan tambahan untuk lingkungan adalah:
- Alamat IP publik yang digunakan secara pribadi. Jika Anda ingin menggunakan lebih banyak alamat IP, lingkungan Anda dapat menggunakan rentang alamat IP publik tertentu secara pribadi sebagai rentang alamat IP subnet internal untuk pod dan layanan.
- Jaringan yang diizinkan. Jika ingin mengakses bidang kontrol lingkungan IP Pribadi menggunakan HTTPS, Anda dapat menggunakan jaringan yang diizinkan untuk menentukan rentang CIDR yang dapat melakukannya.
- Agen Penyamaran IP. Dengan menggunakan lingkungan dengan agen Penyamaran IP, Anda dapat menggunakan penafsiran alamat IP many-to-one dalam konfigurasi jaringan lingkungan Anda. Untuk mengetahui informasi selengkapnya tentang cara membuat lingkungan dengan agen Penyamaran IP, lihat Mengaktifkan agen Penyamaran IP.
Konsol
Untuk membuat lingkungan IP Pribadi:
Pastikan jaringan Anda dikonfigurasi untuk jenis lingkungan yang ingin Anda buat.
Di bagian Konfigurasi jaringan, luaskan item Tampilkan konfigurasi jaringan.
Di menu drop-down Network, pilih ID jaringan VPC Anda.
Di menu drop-down Subnetwork, pilih ID subnetwork VPC Anda.
Di bagian Rentang IP sekunder untuk pod, pilih atau tentukan rentang IP sekunder untuk pod. Anda dapat menggunakan rentang sekunder yang ada di jaringan VPC, atau memilih untuk menggunakan rentang yang dibuat otomatis.
Di bagian Rentang IP sekunder untuk layanan, pilih atau tentukan rentang IP sekunder untuk layanan. Anda dapat menggunakan rentang sekunder yang ada di jaringan VPC, atau memilih untuk menggunakan rentang yang dibuat otomatis.
Di bagian Networking type, pilih opsi Private IP environment untuk membuat lingkungan IP Pribadi.
Di bagian Composer connectivity, pilih jenis jaringan untuk lingkungan Anda dan tentukan rentang IP untuk komponen lingkungan:
Untuk lingkungan yang menggunakan Private Service Connect:
Pilih Private Service Connect untuk lingkungan yang menggunakan Private Service Connect.
Di bagian Composer connection subnetwork, tentukan rentang IP untuk subnetwork koneksi Managed Airflow. Alamat untuk endpoint PSC dipilih dari rentang ini. Anda dapat menentukan rentang kustom, atau memilih untuk menggunakan rentang default.
Untuk lingkungan yang menggunakan peering VPC:
Pilih VPC peerings untuk lingkungan yang menggunakan peering VPC.
Di bagian IP range for Composer tenant network, tentukan rentang IP untuk jaringan tenant Managed Airflow. Jaringan ini menghosting komponen proxy SQL lingkungan Anda. Anda dapat menentukan rentang kustom, atau memilih untuk menggunakan rentang default.
Di bagian Rentang IP untuk jaringan Cloud SQL, tentukan rentang IP untuk instance Cloud SQL. Anda dapat menentukan rentang kustom, atau memilih untuk menggunakan rentang default.
Di bagian IP range for GKE control plane network, tentukan rentang IP untuk bidang kontrol GKE:
Untuk menggunakan rentang IP default untuk region tempat lingkungan Anda berada, pilih Rentang IP default.
Untuk menentukan rentang IP kustom, pilih Rentang IP kustom dan masukkan rentang dalam notasi CIDR di kolom IP pribadi master cluster GKE.
Pilih tingkat akses untuk bidang kontrol GKE. Bidang kontrol memiliki dua endpoint. Satu endpoint bersifat pribadi, untuk digunakan oleh node cluster dan VM. Endpoint lainnya bersifat publik. Anda dapat menentukan tingkat akses untuk endpoint publik:
Untuk mengaktifkan akses ke endpoint publik dari jaringan yang diizinkan, centang kotak Akses endpoint bidang kontrol cluster menggunakan alamat IP eksternalnya.
Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Akses endpoint publik diaktifkan, jaringan yang diizinkan diaktifkan". Opsi ini memberikan akses terbatas ke bidang kontrol dari jaringan yang diizinkan. Secara default, tidak ada alamat IP sumber yang ditentukan. Anda dapat menambahkan jaringan yang diizinkan ke cluster.
Untuk menonaktifkan akses ke endpoint publik dari jaringan yang diizinkan, hapus centang pada kotak Akses endpoint bidang kontrol cluster menggunakan alamat IP eksternalnya.
Menggunakan opsi ini akan menyetel tingkat akses untuk bidang kontrol ke "Akses endpoint publik dinonaktifkan". Tindakan ini mencegah semua akses internet ke bidang kontrol.
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-environmentmengaktifkan lingkungan IP Pribadi.--networkmenentukan ID jaringan VPC Anda.--subnetworkmenentukan ID subnetwork VPC Anda.--cluster-secondary-range-nameatau--cluster-ipv4-cidrmengonfigurasi rentang sekunder untuk pod.--services-secondary-range-nameatau--services-ipv4-cidruntuk mengonfigurasi rentang sekunder untuk layanan.--master-ipv4-cidrmenentukan rentang untuk bidang kontrol GKE.
(Lingkungan dengan PSC)
--connection-subnetworkmenentukan rentang untuk subnetwork koneksi Managed Airflow, yang menghosting endpoint PSC.(Lingkungan dengan peering VPC)
--connection-type=VPC_PEERINGmenentukan bahwa lingkungan harus menggunakan peering VPC.(Environments with VPC peerings)
--composer-network-ipv4-cidrmenentukan rentang untuk jaringan tenant Managed Airflow. Jaringan ini menghosting komponen proxy SQL lingkungan Anda.(Lingkungan dengan peering VPC)
--cloud-sql-ipv4-cidrmenentukan rentang untuk instance Cloud SQL.
--enable-private-endpointmengontrol akses tingkat untuk bidang kontrol GKE. Bidang kontrol memiliki dua endpoint. Satu endpoint bersifat pribadi, untuk digunakan oleh node dan VM cluster. Endpoint lainnya bersifat publik. Anda dapat menentukan tingkat akses untuk endpoint publik:Untuk mengaktifkan akses ke endpoint publik dari jaringan yang diizinkan, hapus argumen
--enable-private-endpoint.Menggunakan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Public endpoint access enabled, authorized networks enabled". Hal ini memberikan akses terbatas ke bidang kontrol dari jaringan yang diizinkan. Secara default, tidak ada alamat IP sumber yang ditentukan. Anda dapat menambahkan jaringan yang diizinkan ke cluster.
Untuk menonaktifkan akses ke endpoint publik dari jaringan yang diizinkan, tentukan argumen
--enable-private-endpoint.Menggunakan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Akses endpoint publik dinonaktifkan". Tindakan ini mencegah semua akses internet ke bidang kontrol.
Argumen
--enable-master-authorized-networksdan--master-authorized-networksmengonfigurasi jaringan yang diizinkan untuk lingkungan Anda.--enable-privately-used-public-ipsmengonfigurasi alamat IP publik yang digunakan secara pribadi untuk lingkungan Anda.--enable-ip-masq-agentmengaktifkan agen Penyamaran IP.
Contoh (Lingkungan IP Pribadi )
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--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 \
Ganti:
NETWORK_IDdengan ID jaringan VPC Anda.SUBNETWORK_IDdengan ID subnetwork VPC Anda.PODS_RANGEdengan rentang sekunder untuk pod.SERVICES_RANGEdengan rentang sekunder untuk layanan.CONTROL_PLANE_RANGEdengan rentang sekunder untuk bidang kontrol GKE.COMPOSER_PSC_RANGEdengan rentang untuk subnetwork koneksi Managed Airflow.
Langkah 8. (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 Network tags, masukkan tag jaringan untuk lingkungan Anda.
gcloud
Saat Anda membuat lingkungan, argumen berikut mengontrol tag jaringan:
--tagsmenentukan daftar tag jaringan yang dipisahkan koma yang diterapkan ke semua VM node.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--tags TAGS
Ganti:
TAGSdengan daftar tag jaringan yang dipisahkan koma.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.15-airflow-2.11.1 \
--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:
TAGdengan 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
tagsdalam bloknode_configmenentukan daftar tag jaringan yang dipisahkan koma yang 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:
TAGSdengan 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 9. (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 memiliki UI Airflow yang dapat diakses dari internet.
Anda tidak dapat mengonfigurasi rentang IP yang diizinkan menggunakan alamat IP pribadi.
Konsol
Di halaman Create environment:
Di bagian Network configuration, luaskan item Show network configuration.
Di bagian Kontrol akses jaringan server web:
Untuk memberikan akses ke server web Airflow dari semua alamat IP, pilih Allow access from all IP addresses.
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 Add IP range.
Untuk melarang akses bagi semua alamat IP, pilih Allow access only from specific IP addresses, lalu klik Delete item di samping entri rentang yang kosong.
gcloud
Saat Anda membuat lingkungan, argumen berikut mengontrol tingkat akses server web:
--web-server-allow-allmemberikan akses ke Airflow dari semua alamat IP. Opsi ini adalah opsi default.--web-server-allow-ipmembatasi akses hanya ke rentang IP sumber tertentu. Untuk menentukan beberapa rentang IP, gunakan argumen ini beberapa kali.--web-server-deny-allmelarang akses untuk semua alamat IP.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Ganti:
WS_IP_RANGEdengan rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTIONdengan deskripsi rentang IP.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.15-airflow-2.11.1 \
--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 Anda 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
allowedIpRangesdan 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_RANGEdengan rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTIONdengan 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_RANGEdengan rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTIONdengan 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 10. (Opsional) Menentukan 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 variabel lingkungan, klik Tambahkan variabel lingkungan.
Masukkan Nama dan Nilai untuk variabel lingkungan.
Di bagian Airflow configuration overrides, klik Add Airflow configuration override.
Masukkan Section, Key, dan Value untuk penggantian opsi konfigurasi.
Contoh:
Bagian Kunci Nilai webserverdag_orientationTB
gcloud
Saat Anda membuat lingkungan, argumen berikut mengontrol variabel lingkungan dan penggantian konfigurasi Airflow:
--env-variablesmenentukan 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-configsmenentukan daftar kunci dan nilai yang dipisahkan koma untuk penggantian konfigurasi Airflow.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--env-variables ENV_VARS \
--airflow-configs CONFIG_OVERRIDES
Ganti:
ENV_VARSdengan daftar pasanganNAME=VALUEyang dipisahkan koma untuk variabel lingkungan.CONFIG_OVERRIDESdengan daftar pasanganSECTION-KEY=VALUEyang 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-2.17.15-airflow-2.11.1 \
--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 Anda 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:
SECTIONdengan bagian dalam file konfigurasi tempat opsi konfigurasi Airflow berada.KEYdengan nama opsi konfigurasi Airflow.OVERRIDE_VALUEdengan nilai opsi konfigurasi Airflow.VAR_NAMEdengan nama variabel lingkungan.VAR_VALUEdengan 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_variablesdi bloksoftware_configmenentukan variabel lingkungan.Nama variabel dapat berisi huruf besar dan kecil, angka, dan garis bawah, tetapi tidak boleh diawali dengan angka.
Blok
airflow_config_overridesdi bloksoftware_configmenentukan 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:
SECTIONdengan bagian dalam file konfigurasi tempat opsi konfigurasi Airflow berada.KEYdengan nama opsi konfigurasi Airflow.OVERRIDE_VALUEdengan nilai opsi konfigurasi Airflow.VAR_NAMEdengan nama variabel lingkungan.VAR_VALUEdengan 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 11. (Opsional) Menentukan masa pemeliharaan
Masa pemeliharaan default di Managed Airflow (Gen 2) adalah dari pukul 00.00.00 hingga 04.00.00 (GMT) pada hari Jumat, Sabtu, dan Minggu setiap minggu.
Untuk menentukan masa pemeliharaan kustom bagi 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 setiap durasi slot harus minimal 4 jam.
Misalnya, periode 4 jam setiap Senin, Rabu, dan Jumat memberikan jumlah waktu yang diperlukan.
gcloud
Argumen berikut menentukan parameter masa pemeliharaan:
--maintenance-window-startmenetapkan waktu mulai periode pemeliharaan.--maintenance-window-endmenetapkan waktu berakhir masa pemeliharaan.--maintenance-window-recurrencemenetapkan pengulangan masa pemeliharaan.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--maintenance-window-start 'DATETIME_START' \
--maintenance-window-end 'DATETIME_END' \
--maintenance-window-recurrence 'MAINTENANCE_RECURRENCE'
Ganti:
ENVIRONMENT_NAMEdengan nama lingkungan.DATETIME_STARTdengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.DATETIME_ENDdengan 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_RECURRENCEdengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Managed Airflow mendukung dua format:Format
FREQ=DAILYmenentukan pengulangan harian.Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAmenentukan pengulangan pada hari dalam seminggu yang dipilih.
Contoh berikut menentukan masa pemeliharaan selama 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-2.17.15-airflow-2.11.1 \
--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 resource Environment > EnvironmentConfig, tentukan parameter masa 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_STARTdengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.DATETIME_ENDdengan 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_RECURRENCEdengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Managed Airflow mendukung dua format:Format
FREQ=DAILYmenentukan pengulangan harian.Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAmenentukan pengulangan pada hari dalam seminggu yang dipilih.
Contoh berikut menentukan masa pemeliharaan selama 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 periode 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_STARTdengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan diabaikan.DATETIME_ENDdengan 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_RECURRENCEdengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Managed Airflow mendukung dua format:- Format
FREQ=DAILYmenentukan pengulangan harian. - Format
FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SAmenentukan 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 12. (Opsional) Integrasi silsilah data
Silsilah data adalah fitur Knowledge Catalog yang memungkinkan Anda melacak pergerakan data.
Integrasi silsilah data tersedia di Managed Airflow (Gen 2) versi 2.1.2 dan yang lebih baru dengan Airflow versi 2.2.5 dan yang lebih baru.Integrasi silsilah data diaktifkan secara otomatis di lingkungan Managed Airflow baru jika kondisi berikut terpenuhi:
Data Lineage API diaktifkan di project Anda. Untuk mengetahui informasi selengkapnya, baca bagian Mengaktifkan Data Lineage API dalam dokumentasi Knowledge Catalog.
Lineage Backend 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 Create environment, lakukan hal berikut:
Di bagian Konfigurasi lanjutan, luaskan Tampilkan konfigurasi lanjutan.
Di menu Knowledge Catalog Lineage integration, pilih Disable integration with Knowledge Catalog Lineage.
gcloud
Saat Anda membuat lingkungan, argumen --disable-cloud-data-lineage-integration
akan menonaktifkan integrasi silsilah data.
gcloud composer environments create ENVIRONMENT_NAME \
--location LOCATION \
--image-version composer-2.17.15-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--disable-cloud-data-lineage-integration
Ganti:
ENVIRONMENT_NAMEdengan nama lingkungan.LOCATIONdengan region tempat lingkungan berada.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.15-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--disable-cloud-data-lineage-integration
Langkah 13. (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 14. (Opsional) Menggunakan bucket lingkungan kustom
Saat Anda membuat lingkungan, Managed Airflow 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 15. (Opsional) Tentukan label lingkungan
Anda dapat menetapkan label ke lingkungan untuk memecah biaya yang ditagih 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-2.17.15-airflow-2.11.1 \
--service-account "SERVICE_ACCOUNT" \
--labels LABELS
Ganti:
LABELSdengan daftar pasanganKEY=VALUEyang dipisahkan koma untuk label lingkungan.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.17.15-airflow-2.11.1 \
--service-account "
example-account@example-project.iam.gserviceaccount.com
" \
--labels owner=engineering-team,env=production
API
Saat Anda 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_KEYdengan kunci label lingkungan.LABEL_VALUEdengan 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_KEYdengan kunci label lingkungan.LABEL_VALUEdengan 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 Managed Airflow