Membuat lingkungan Managed Service untuk Apache Airflow

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

Halaman ini menjelaskan cara membuat lingkungan Managed Airflow.

Sebelum memulai

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 contoh lanjutan tentang cara membuat akun layanan untuk lingkungan Anda di Terraform.

Untuk membuat akun layanan baru untuk lingkungan Anda:

  1. Buat akun layanan baru seperti yang dijelaskan dalam dokumentasi Identity and Access Management.

  2. Berikan peran ke akun layanan tersebut, seperti yang dijelaskan dalam dokumentasi Identity and Access Management. Peran yang diperlukan adalah Composer Worker (composer.worker).

  3. 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 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 yang tersisa bersifat opsional.

Konsol

  1. Di konsol Google Cloud , buka halaman Create environment.

    Buka Create environment

  2. 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 Pedoman penamaan bucket untuk mengetahui daftar batasan.

  3. Di menu drop-down Lokasi, pilih lokasi untuk lingkungan Anda.

    Lokasi adalah region tempat lingkungan berada.

  4. Di menu drop-down Image version, pilih Managed Airflow image dengan versi Airflow yang diperlukan.

  5. 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 yang 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 Panduan penamaan bucket untuk mengetahui daftar pembatasan.

  • LOCATION dengan region untuk lingkungan.

    Lokasi adalah region tempat lingkungan berada.

  • SERVICE_ACCOUNT dengan akun layanan untuk lingkungan Anda.

  • IMAGE_VERSION dengan nama image Managed Airflow.

Contoh:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --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 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_VERSION dengan nama image Managed Airflow.

  • 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.11.1-build.20"
    },
    "nodeConfig": {
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Terraform

Untuk membuat lingkungan dengan parameter default di lokasi yang ditentukan, 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 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.

  • LOCATION dengan region untuk lingkungan.

    Lokasi adalah region tempat lingkungan berada.

  • IMAGE_VERSION dengan nama image Managed Airflow.

  • 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.11.1-build.20"
    }
    node_config {
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
  }
}

Langkah 3. (Opsional) Mengaktifkan mode pengembangan

Lingkungan mode pengembangan dapat digunakan untuk menguji dan mengembangkan DAG sebelum dipublikasikan ke jalur produksi. Anda dapat menghibernasi lingkungan mode pengembangan saat tidak menggunakannya.

Lingkungan mode pengembangan memiliki batasan berikut:

  • Hanya Managed Airflow (Gen 3) dengan Airflow 3.
  • Hanya mode ketahanan standar.
  • Ukuran lingkungan kecil dan batas resource default yang disediakan oleh preset lingkungan Kecil. Anda tidak dapat mengubah jumlah komponen Airflow atau batas resource lingkungan mode pengembangan.

Konsol

Di halaman Create environment:

  1. Di Image version, pilih versi dengan Airflow 3.
  2. Pilih Mode pengembangan.

gcloud

Saat Anda membuat lingkungan, argumen --enable-development-mode akan mengaktifkan mode pengembangan:

gcloud beta composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-3 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-development-mode

API

Saat Anda membuat lingkungan, di resource Environment, tetapkan kolom mode ke DEVELOPMENT:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "mode": "DEVELOPMENT"
}

Contoh:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
    "mode": "DEVELOPMENT"
}

Terraform

Dukungan Terraform untuk fitur ini belum tersedia.

Setelah dibuat, lingkungan mode pengembangan Anda akan berada dalam status berjalan. Anda dapat menidurkan atau melanjutkannya kapan saja.

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 scheduler untuk mendistribusikan beban di antara beberapa instance scheduler guna meningkatkan performa dan keandalan.

      Meningkatkan jumlah penjadwal tidak selalu meningkatkan performa Airflow. Misalnya, hanya memiliki satu penjadwal mungkin memberikan performa yang lebih baik daripada memiliki dua penjadwal. Hal ini dapat terjadi jika scheduler tambahan tidak digunakan, sehingga menggunakan resource lingkungan Anda tanpa berkontribusi pada performa keseluruhan. Performa scheduler 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 3), pemicu Airflow diaktifkan secara default. Jika Anda ingin membuat lingkungan tanpa pemicu, tetapkan jumlah pemicu ke nol.

    • Pemroses DAG Airflow. Memproses file DAG dan mengubahnya menjadi objek DAG. Di Managed Airflow (Gen 3), bagian scheduler ini berjalan sebagai komponen lingkungan yang terpisah.

    • 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, atau Extra Large.

  • Untuk menentukan nilai kustom untuk parameter skala dan performa:

    1. Di bagian Environment resources, klik Custom.

    2. Di bagian Scheduler, tetapkan jumlah penjadwal yang ingin Anda gunakan, serta alokasi resource untuk CPU, memori, dan penyimpanannya.

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

      Jika Anda menetapkan setidaknya satu pemicu untuk lingkungan Anda, gunakan kolom CPU, dan Memori untuk mengonfigurasi alokasi resource untuk pemicu Anda.

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

    5. Di bagian Web server, tentukan jumlah CPU, memori, dan penyimpanan untuk server web.

    6. Di bagian Worker, tentukan:

      • Jumlah minimum dan maksimum worker untuk batas penskalaan otomatis di lingkungan Anda.
      • Alokasi CPU, memori, dan penyimpanan untuk pekerja Anda
    7. 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 kapasitas disk untuk penjadwal Airflow.

  • --triggerer-count menentukan jumlah pemicu Airflow di lingkungan Anda. Nilai default untuk tanda ini adalah 0. Anda memerlukan pemicu jika ingin menggunakan operator yang dapat ditangguhkan di DAG.

    • Untuk lingkungan ketahanan standar, gunakan nilai antara 0 dan 10.
    • Untuk lingkungan yang sangat tangguh, gunakan 0 atau nilai antara 2 dan 10.
  • --triggerer-cpu menentukan jumlah CPU untuk pemicu Airflow, dalam unit vCPU. Nilai yang diizinkan: 0.5, 0.75, 1. Nilai default-nya adalah 0.5.

  • --triggerer-memory menentukan jumlah memori untuk pemicu Airflow, dalam GB. Nilai defaultnya adalah 0.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-cpu ke 1, nilai minimum untuk --triggerer-memory adalah 1 dan nilai maksimum adalah 6.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 prosesor DAG.

  • --dag-processor-storage menentukan jumlah kapasitas 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 kapasitas disk untuk server web Airflow.

  • --worker-cpu menentukan jumlah CPU untuk worker Airflow.

  • --worker-memory menentukan jumlah memori untuk pekerja Airflow.

  • --worker-storage menentukan jumlah kapasitas disk untuk worker Airflow.

  • --min-workers menentukan jumlah minimum worker Airflow. Cluster lingkungan Anda menjalankan setidaknya jumlah worker ini.

  • --max-workers menentukan jumlah maksimum worker Airflow. Cluster lingkungan Anda menjalankan maksimal jumlah worker ini.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --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 dengan small, medium, large, extra-large.
  • SCHEDULER_COUNT dengan jumlah penjadwal.
  • SCHEDULER_CPU dengan jumlah CPU untuk penjadwal, dalam unit vCPU.
  • SCHEDULER_MEMORY dengan jumlah memori untuk scheduler.
  • SCHEDULER_STORAGE dengan ukuran disk untuk scheduler.
  • 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 prosesor DAG.

  • DAG_PROCESSOR_MEMORY dengan jumlah memori untuk prosesor DAG.

  • DAG_PROCESSOR_STORAGE dengan jumlah kapasitas 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 worker, dalam unit vCPU.

  • WORKER_MEMORY dengan jumlah memori untuk worker.

  • WORKER_STORAGE dengan ukuran disk untuk worker.

  • WORKERS_MIN dengan jumlah minimum worker 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 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-3-airflow-2.11.1-build.20 \
    --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 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
      },
      "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 unit 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 adalah 0. Anda memerlukan pemicu jika ingin menggunakan operator yang dapat ditangguhkan di DAG Anda.

    • Untuk lingkungan ketahanan standar, gunakan nilai antara 0 dan 10.
    • Untuk lingkungan yang sangat tangguh, gunakan 0 atau nilai antara 2 dan 10.

    Jika menggunakan setidaknya satu pemicu, Anda juga harus menentukan parameter TRIGGERER_CPU dan TRIGGERER_MEMORY:

  • TRIGGERER_CPU menentukan jumlah CPU untuk pemicu, dalam unit 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 ke 1, nilai minimum untuk TRIGGERER_MEMORY adalah 1 dan nilai maksimum adalah 6.5.

  • DAG_PROCESSOR_COUNT dengan jumlah prosesor DAG.

    Lingkungan yang sangat tangguh memerlukan setidaknya dua pemroses DAG.

  • DAG_PROCESSOR_CPU dengan jumlah CPU untuk pemroses DAG, dalam satuan vCPU.

  • DAG_PROCESSOR_MEMORY dengan jumlah memori untuk prosesor DAG, dalam GB.

  • DAG_PROCESSOR_STORAGE dengan jumlah kapasitas 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 worker, dalam unit vCPU.

  • WORKER_MEMORY dengan jumlah memori untuk pekerja, dalam GB.

  • WORKER_STORAGE dengan ukuran disk untuk worker, dalam GB.

  • WORKERS_MIN dengan 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_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, ENVIRONMENT_SIZE_LARGE, ENVIRONMENT_SIZE_EXTRA_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.
  • 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 kapasitas 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 prosesor DAG.

    • Kolom dag_processor.memory_gb menentukan jumlah memori untuk pemroses DAG.

    • Kolom dag_processor.storage_gb menentukan jumlah kapasitas 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 kapasitas disk untuk server web Airflow.

    • Kolom worker.cpu menentukan jumlah CPU untuk pekerja Airflow.

    • Kolom worker.memory_gb menentukan jumlah memori untuk worker Airflow.

    • Kolom worker.storage_gb menentukan jumlah kapasitas disk untuk worker Airflow.

    • Kolom worker.min_count menentukan jumlah minimum worker di lingkungan Anda.

    • Kolom worker.max_count menentukan jumlah maksimum worker di lingkungan Anda.

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 prosesor DAG, dalam unit vCPU.

  • DAG_PROCESSOR_MEMORY dengan jumlah memori untuk prosesor DAG, dalam GB.

  • DAG_PROCESSOR_STORAGE dengan jumlah kapasitas 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 worker, dalam unit vCPU.

  • WORKER_MEMORY dengan jumlah memori untuk pekerja, dalam GB.

  • WORKER_STORAGE dengan ukuran disk untuk worker, dalam GB.

  • WORKERS_MIN dengan 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_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, ENVIRONMENT_SIZE_LARGE, ENVIRONMENT_SIZE_EXTRA_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) Aktifkan mode ketahanan tinggi

Lingkungan Managed Airflow yang sangat tangguh (Sangat Tersedia) adalah lingkungan yang menggunakan mekanisme redundansi dan failover bawaan yang mengurangi kerentanan lingkungan terhadap kegagalan zona dan pemadaman layanan titik tunggal kegagalan.

Di Managed Airflow (Gen 3), lingkungan yang sangat tangguh tersedia mulai dari build Airflow composer-3-airflow-2.10.2-build.13 dan composer-3-airflow-2.9.3-build.20.

Lingkungan yang sangat tangguh bersifat multi-zona dan berjalan di setidaknya dua zona dari region yang dipilih. Komponen berikut berjalan di zona terpisah:

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:

  1. Di bagian Resilience mode, pilih High resilience.

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

    1. Klik Custom.

    2. Di menu drop-down Number of schedulers, pilih 2.

    3. Di menu drop-down Jumlah pemicu, pilih 0, atau nilai antara 2 dan 10. Konfigurasikan alokasi CPU dan Memori untuk pemicu Anda.

    4. Di menu drop-down Jumlah minimum pekerja, pilih 2 atau lebih, bergantung pada jumlah pekerja yang diperlukan.

  3. Di bagian Network configuration:

    1. Di Networking type, pilih Private IP environment.

    2. 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 ke 2
  • --triggerer-count hingga 0 atau nilai antara 2 dan 10. 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 performa dan skala lingkungan.

  • --min-workers hingga 2 atau lebih

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --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 akan 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:

  1. Di bagian Konfigurasi lanjutan, luaskan item Tampilkan konfigurasi lanjutan.

  2. 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-3-airflow-2.11.1-build.20 \
    --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.11.1-build.20 \
    --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 7. (Opsional) Mengonfigurasi jaringan lingkungan Anda

Anda dapat mengonfigurasi jaringan Managed Airflow (Gen 3) dengan cara berikut:

Konsol

  1. Pastikan jaringan Anda dikonfigurasi untuk jenis lingkungan yang ingin Anda buat.

  2. Di bagian Network configuration, luaskan item Show network configuration.

  3. Jika Anda ingin menghubungkan lingkungan 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.

  4. Jika Anda ingin membuat lingkungan IP Pribadi, di bagian Networking type, pilih opsi Private IP environment.

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

Contoh (Lingkungan IP Pribadi dengan jaringan VPC yang terhubung)

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --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 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:

  1. Temukan bagian Network configuration.
  2. Di kolom Network tags, 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.11.1-build.20 \
    --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.11.1-build.20 \
    --tags group1,production

API

Saat Anda 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 blok node_config menentukan 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:

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

  1. Di bagian Konfigurasi jaringan, luaskan item Tampilkan konfigurasi jaringan.

  2. 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 IP range, tentukan rentang IP dalam notasi CIDR. Di kolom Description, 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 Izinkan akses hanya dari alamat IP tertentu, lalu 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.11.1-build.20 \
    --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.11.1-build.20 \
    --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 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 10. (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:

  1. Di bagian variabel lingkungan, klik Tambahkan variabel lingkungan.

  2. Masukkan Nama dan Nilai untuk variabel lingkungan.

  3. Di bagian Penggantian konfigurasi Airflow, klik Tambahkan penggantian konfigurasi Airflow.

  4. Masukkan Section, Key, dan Value 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.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --env-variables ENV_VARS \
    --airflow-configs CONFIG_OVERRIDES

Ganti:

  • ENV_VARS dengan daftar pasangan NAME=VALUE yang dipisahkan koma untuk variabel lingkungan.
  • CONFIG_OVERRIDES dengan daftar pasangan SECTION-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.11.1-build.20 \
    --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:

  • 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 blok software_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 di blok software_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 11. (Opsional) Tentukan masa pemeliharaan

Masa pemeliharaan default di Managed Airflow (Gen 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 adalah dari pukul 00.00.00 hingga 04.00.00.

Untuk menentukan masa pemeliharaan kustom bagi lingkungan Anda:

Konsol

Di halaman Create environment

  1. Temukan bagian masa pemeliharaan.

  2. Di menu drop-down Timezone, pilih zona waktu untuk masa pemeliharaan.

  3. Tetapkan Waktu mulai, Hari, dan Durasi, sehingga:

    • Setidaknya 12 jam 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-start menetapkan waktu mulai periode 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.11.1-build.20 \
    --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 akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Managed Airflow mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

  • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari tertentu dalam seminggu.

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-3-airflow-2.11.1-build.20 \
  --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 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_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan akan 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. Managed Airflow mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

  • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari tertentu dalam seminggu.

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 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_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan dalam sehari 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. Managed Airflow mendukung dua format:

    • Format FREQ=DAILY menentukan pengulangan harian.
    • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari tertentu dalam seminggu.

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 semua versi Managed Airflow (Gen 3).

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:

  1. Di bagian Advanced configuration, luaskan Show advanced configuration.

  2. 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-3-airflow-2.11.1-build.20 \
    --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.11.1-build.20 \
    --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) Mengonfigurasi retensi database

Jika Anda mengaktifkan retensi database di lingkungan Anda, Managed Airflow akan menghapus secara berkala catatan terkait eksekusi DAG dan sesi pengguna yang lebih lama dari jangka waktu yang ditentukan dari database Airflow. Informasi operasi DAG terbaru selalu dipertahankan.

Secara default, retensi database diaktifkan. Untuk mengonfigurasi periode retensi data untuk lingkungan baru atau menonaktifkan retensi database, ikuti petunjuk yang diuraikan dalam Mengonfigurasi kebijakan retensi database. Anda juga dapat mengonfigurasi retensi database nanti.

Langkah 16. (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:

  1. Klik Tambahkan label.

  2. 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.11.1-build.20 \
    --service-account "SERVICE_ACCOUNT" \
    --labels LABELS

Ganti:

  • LABELS dengan daftar pasangan KEY=VALUE yang dipisahkan koma untuk label lingkungan.

Contoh:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-3-airflow-2.11.1-build.20 \
    --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_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 Anda 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