Membuat lingkungan Cloud Composer

Cloud Composer 1 | Cloud Composer 2

Halaman ini menjelaskan cara membuat lingkungan Cloud Composer 1.

Lingkungan Cloud Composer adalah penginstalan Apache Airflow mandiri yang di-deploy ke cluster Google Kubernetes Engine yang terkelola. Anda dapat membuat satu atau beberapa lingkungan dalam satu project Google Cloud.

Sebelum memulai

  • Jika Anda membuat lingkungan dengan Terraform, akun layanan yang digunakan oleh Terraform harus memiliki peran dengan izin composer.environments.create yang diaktifkan.

    Untuk mengetahui informasi selengkapnya tentang akun layanan untuk Terraform, baca Referensi Konfigurasi Penyedia Google.

    Untuk mengetahui informasi lebih lanjut mengenai penggunaan Terraform untuk membuat lingkungan Cloud Composer, lihat dokumentasi Terraform.

    Untuk mengetahui informasi selengkapnya tentang parameter tambahan, lihat Referensi Argumen Terraform.

  • IP Pribadi: Ada persyaratan jaringan dan peering tertentu untuk membuat lingkungan IP Pribadi. Untuk informasi selengkapnya, lihat Mengonfigurasi IP pribadi.

  • VPC Bersama: Terdapat persyaratan jaringan khusus untuk menggunakan VPC Bersama dengan Cloud Composer. Untuk mengetahui informasinya, lihat Mengonfigurasi VPC bersama.

  • SC VPC: Untuk men-deploy lingkungan Cloud Composer di dalam perimeter keamanan, lihat bagian Mengonfigurasi SC VPC. Saat digunakan dengan Cloud Composer, Kontrol Layanan VPC memiliki beberapa batasan umum.

Langkah 1. Penyiapan dasar

Langkah ini akan membuat lingkungan Cloud Composer dengan parameter default di lokasi yang ditentukan.

Konsol

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

    Buka Buat lingkungan

  2. Di kolom Nama, masukkan nama untuk lingkungan Anda.

    Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan. Jadi, Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Panduan penamaan bucket untuk mengetahui daftar batasan.

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

    Lokasi adalah region tempat cluster GKE lingkungan berada.

  4. Lanjutkan ke langkah berikutnya, atau klik Buat untuk membuat lingkungan.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.

    Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan. Jadi, Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Panduan penamaan bucket untuk mengetahui daftar batasan.

  • LOCATION dengan region untuk lingkungan.

    Lokasi adalah region tempat cluster GKE lingkungan berada.

  • IMAGE_VERSION dengan nama image Cloud Composer. Jika Anda menghapus argumen ini, image Cloud Composer terbaru untuk Cloud Composer 1 akan digunakan. Anda juga dapat menggunakan composer-1-airflow-1.10 untuk membuat lingkungan dengan image Cloud Composer terbaru.

Contoh:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15

API

Buat permintaan environments.create API. Tentukan konfigurasi di resource Environment.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME"
  "config": {
      "softwareConfig": {
        "imageVersion": "IMAGE_VERSION"
      }
    }
}

Ganti:

  • PROJECT_ID dengan Project ID.

  • LOCATION dengan region untuk lingkungan.

    Lokasi adalah region tempat cluster GKE lingkungan berada.

  • ENVIRONMENT_NAME dengan nama lingkungan.

    Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan. Jadi, Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Panduan penamaan bucket untuk mengetahui daftar batasan.

  • IMAGE_VERSION dengan nama image Cloud Composer. Jika Anda menghapus argumen ini, image Cloud Composer terbaru untuk Cloud Composer 1 akan digunakan. Anda juga dapat menggunakan composer-1-airflow-1.10 untuk membuat lingkungan dengan image Cloud Composer terbaru.

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-1.20.12-airflow-1.10.15"
      }
    }
}

Terraform

Untuk membuat lingkungan dengan parameter default adalah lokasi yang ditentukan, tambahkan blok resource berikut ke konfigurasi Terraform Anda, lalu jalankan terraform apply.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    software_config {
      image_version = "IMAGE_VERSION"
    }
  }
}

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.

    Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen lingkungan. Jadi, Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Panduan penamaan bucket untuk mengetahui daftar batasan.

  • LOCATION dengan region untuk lingkungan.

    Lokasi adalah region tempat cluster GKE lingkungan berada.

  • IMAGE_VERSION dengan nama image Cloud Composer. Jika Anda menghapus argumen ini, image Cloud Composer terbaru untuk Cloud Composer 1 akan digunakan. Anda juga dapat menggunakan composer-1-airflow-1.10 untuk membuat lingkungan dengan image Cloud Composer terbaru.

Contoh:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
  }

}

Langkah 2. (Opsional) Pilih akun layanan untuk lingkungan Anda

Node di cluster lingkungan Anda dijalankan sebagai akun layanan ini.

Secara default, lingkungan Cloud Composer menggunakan akun layanan Compute Engine default. Sebaiknya Anda menyiapkan akun layanan yang dikelola pengguna untuk lingkungan Cloud Composer Anda.

Anda tidak dapat mengubah akun layanan lingkungan Anda nanti.

Konsol

Di halaman Create environment, di bagian Node configuration, di menu drop-down Service account, pilih akun layanan untuk lingkungan Anda.

gcloud

Saat Anda membuat lingkungan, --service-account akan menentukan akun layanan untuk lingkungan Anda.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --service-account "SERVICE_ACCOUNT"

Ganti:

  • SERVICE_ACCOUNT dengan akun layanan untuk lingkungan Anda.

Contoh:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --service-account "example-account@example-project.iam.gserviceaccount.com"

API

Saat membuat lingkungan, di resource Environment > EnvironmentConfig, tentukan akun layanan untuk lingkungan Anda.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "serviceAccount": "SERVICE_ACCOUNT"
    }
}

Ganti:

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

Terraform

Saat Anda membuat lingkungan, gunakan kolom service_account dalam blok node_config.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    node_config {
      service_account = "SERVICE_ACCOUNT"
    }
  }
}

Ganti:

  • SERVICE_ACCOUNT dengan akun layanan untuk lingkungan Anda.

Contoh:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {
    node_config {
      service_account = "example-account@example-project.iam.gserviceaccount.com"
    }
  }
}

Langkah 3. (Opsional) Mengonfigurasi parameter performa dan skala lingkungan

Untuk menentukan konfigurasi skala dan performa bagi lingkungan Anda, berikan jumlah node di cluster GKE lingkungan Anda dan pilih jenis mesin untuk komponen lingkungan.

Konsol

Di halaman Create environment:

  1. Di bagian Konfigurasi node:

    • Masukkan Jumlah node.

      Jumlah node adalah jumlah node Google Kubernetes Engine di cluster GKE lingkungan. Secara default, lingkungan memiliki 3 node.

      Anda dapat mengubah nilai ini setelah membuat lingkungan.

    • Pilih Machine type untuk node.

      Jenis mesin untuk node adalah jenis mesin Compute Engine yang digunakan untuk instance cluster. Parameter ini menentukan jumlah CPU dan jumlah memori untuk lingkungan Anda. Jenis mesin default adalah n1-standard-1.

      Untuk mengubah nilai ini setelah membuat lingkungan, Anda harus mengonfigurasi ulang cluster lingkungan secara manual.

    • Masukkan Disk size.

      Ukuran disk, dalam GB, untuk node lingkungan. Setiap {i>node<i} di lingkungan Anda memiliki kapasitas {i>disk<i} ini. Pilih ukuran disk yang lebih besar jika Anda ingin menyimpan volume data yang besar dalam folder yang disinkronkan dengan VM lingkungan. Misalnya, dalam folder /data pada bucket lingkungan Anda.

      Ukuran minimumnya adalah 30 GB. Ukuran default adalah 100 GB. Anda tidak dapat mengubah parameter ini setelah membuat lingkungan.

    • Pilih Jumlah penjadwal.

      Lingkungan Anda dapat menjalankan lebih dari satu penjadwal Airflow secara bersamaan. Gunakan beberapa penjadwal untuk mendistribusikan beban di antara beberapa instance penjadwal untuk performa dan keandalan yang lebih baik.

      Anda dapat menentukan jumlah penjadwal hingga jumlah node di lingkungan Anda.

      Meningkatkan jumlah penjadwal tidak selalu meningkatkan performa Airflow. Misalnya, memiliki hanya satu penjadwal mungkin memberikan performa yang lebih baik daripada memiliki dua penjadwal. Hal ini dapat terjadi saat penjadwal tambahan tidak digunakan, sehingga menghabiskan resource lingkungan Anda tanpa berkontribusi pada performa keseluruhan. Performa penjadwal sebenarnya bergantung pada jumlah pekerja Airflow, jumlah DAG dan tugas yang berjalan di lingkungan Anda, serta konfigurasi Airflow dan lingkungan.

      Sebaiknya mulai dengan dua penjadwal, lalu pantau performa lingkungan Anda. Jika mengubah jumlah penjadwal, Anda selalu dapat menskalakan lingkungan kembali ke jumlah penjadwal asli.

      Untuk informasi selengkapnya tentang mengonfigurasi beberapa penjadwal, lihat dokumentasi Airflow.

  2. Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.

  3. Di bagian Cloud SQL configuration, pilih Cloud SQL machine type.

    Parameter ini menentukan jenis mesin untuk instance Cloud SQL yang menjalankan database Airflow. Jenis mesin Cloud SQL default adalah db-n1-standard-2.

  4. Di bagian Web server configuration, pilih Web server machine type.

    Parameter ini menentukan jenis mesin untuk instance Compute Engine yang menjalankan server web Airflow.

    Jenis mesin server web default adalah composer-n1-webserver-2.

gcloud

Saat Anda membuat lingkungan, argumen berikut mengontrol parameter performa dan skala lingkungan:

  • --node-count menentukan jumlah node di lingkungan Anda.

    Jumlah node adalah jumlah node Google Kubernetes Engine di cluster GKE lingkungan. Secara default, lingkungan memiliki 3 node.

    Anda dapat mengubah nilai ini setelah membuat lingkungan.

  • --scheduler-count menentukan jumlah penjadwal di lingkungan Anda.

    Lingkungan Anda dapat menjalankan lebih dari satu penjadwal Airflow secara bersamaan. Gunakan beberapa penjadwal untuk mendistribusikan beban di antara beberapa instance penjadwal untuk performa dan keandalan yang lebih baik.

    Anda dapat menentukan jumlah penjadwal hingga jumlah node di lingkungan Anda.

    Meningkatkan jumlah penjadwal tidak selalu meningkatkan performa Airflow. Misalnya, memiliki hanya satu penjadwal mungkin memberikan performa yang lebih baik daripada memiliki dua penjadwal. Hal ini dapat terjadi saat penjadwal tambahan tidak digunakan, sehingga menghabiskan resource lingkungan Anda tanpa berkontribusi pada performa keseluruhan. Performa penjadwal sebenarnya bergantung pada jumlah pekerja Airflow, jumlah DAG dan tugas yang berjalan di lingkungan Anda, serta konfigurasi Airflow dan lingkungan.

    Sebaiknya mulai dengan dua penjadwal, lalu pantau performa lingkungan Anda. Jika mengubah jumlah penjadwal, Anda selalu dapat menskalakan lingkungan kembali ke jumlah penjadwal asli.

    Untuk informasi selengkapnya tentang mengonfigurasi beberapa penjadwal, lihat dokumentasi Airflow.

  • --disk-size menentukan ukuran disk untuk VM lingkungan.

    Ukuran disk, dalam GB, untuk node lingkungan. Setiap {i>node<i} di lingkungan Anda memiliki kapasitas {i>disk<i} ini. Pilih ukuran disk yang lebih besar jika Anda ingin menyimpan volume data yang besar dalam folder yang disinkronkan dengan VM lingkungan. Misalnya, dalam folder /data pada bucket lingkungan Anda.

    Ukuran minimumnya adalah 30 GB. Ukuran default adalah 100 GB. Anda tidak dapat mengubah parameter ini setelah membuat lingkungan.

  • --machine-type menentukan jenis mesin untuk VM node.

    Jenis mesin untuk node adalah jenis mesin Compute Engine yang digunakan untuk instance cluster. Parameter ini menentukan jumlah CPU dan jumlah memori untuk lingkungan Anda. Jenis mesin default adalah n1-standard-1.

    Untuk mengubah nilai ini setelah membuat lingkungan, Anda harus mengonfigurasi ulang cluster lingkungan secara manual.

  • --cloud-sql-machine-type menentukan jenis mesin untuk instance Cloud SQL.

    Parameter ini menentukan jenis mesin untuk instance Cloud SQL yang menjalankan database Airflow. Jenis mesin Cloud SQL default adalah db-n1-standard-2.

  • --web-server-machine-type menentukan jenis mesin untuk instance server web Airflow.

    Parameter ini menentukan jenis mesin untuk instance Compute Engine yang menjalankan server web Airflow.

    Jenis mesin server web default adalah composer-n1-webserver-2.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone NODE_ZONE \
    --node-count NODE_COUNT \
    --scheduler-count SCHEDULER_COUNT \
    --disk-size DISK_SIZE \
    --machine-type NODE_MACHINE_TYPE \
    --cloud-sql-machine-type SQL_MACHINE_TYPE \
    --web-server-machine-type WS_MACHINE_TYPE

Ganti:

Contoh:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone us-central1-a \
    --node-count 6 \
    --scheduler-count 1 \
    --disk-size 50 \
    --machine-type n1-standard-2 \
    --cloud-sql-machine-type db-n1-standard-2 \
    --web-server-machine-type composer-n1-webserver-2

API

Saat Anda membuat lingkungan, di resource Environment > EnvironmentConfig, tentukan skala lingkungan dan parameter performa.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeCount": NODE_COUNT,
    "nodeConfig": {
      "machineType": "NODE_MACHINE_TYPE",
      "diskSizeGb": DISK_SIZE
    },
    "softwareConfig": {
      "schedulerCount": SCHEDULER_COUNT
    },
    "databaseConfig": {
      "machineType": "SQL_MACHINE_TYPE"
    },
    "webServerConfig": {
      "machineType": "WS_MACHINE_TYPE"
    }
  }
}

Ganti:

  • NODE_COUNT dengan jumlah node.
  • DISK_SIZE dengan ukuran disk untuk VM lingkungan, dalam GB.
  • NODE_MACHINE_TYPE dengan jenis mesin untuk VM node. Nilai ini harus berisi zona untuk VM lingkungan Anda.
  • SCHEDULER_COUNT dengan jumlah penjadwal.
  • SQL_MACHINE_TYPE dengan jenis mesin untuk instance Cloud SQL.
  • WS_MACHINE_TYPE dengan jenis mesin untuk instance server web Airflow.

Contoh:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeCount": 6,
    "nodeConfig": {
      "machineType": "projects/example-project/zones/us-central1-a/machineTypes/n1-standard-2",
      "diskSizeGb": 50
    },
    "softwareConfig": {
      "schedulerCount": 1
    },
    "databaseConfig": {
      "machineType": "db-n1-standard-2"
    },
    "webServerConfig": {
      "machineType": "composer-n1-webserver-2"
    }
  }
}

Terraform

Saat Anda membuat lingkungan, kolom berikut mengontrol skala lingkungan dan parameter performa:

  • node_count di blok node_config menentukan jumlah node di lingkungan Anda.

    Jumlah node adalah jumlah node Google Kubernetes Engine di cluster GKE lingkungan. Secara default, lingkungan memiliki 3 node.

    Anda dapat mengubah nilai ini setelah membuat lingkungan.

  • disk_size_gb di blok node_config menentukan ukuran disk untuk VM lingkungan.

    Ukuran disk, dalam GB, untuk node lingkungan. Setiap {i>node<i} di lingkungan Anda memiliki kapasitas {i>disk<i} ini. Pilih ukuran disk yang lebih besar jika Anda ingin menyimpan volume data yang besar dalam folder yang disinkronkan dengan VM lingkungan. Misalnya, dalam folder /data pada bucket lingkungan Anda.

    Ukuran minimumnya adalah 30 GB. Ukuran default adalah 100 GB. Anda tidak dapat mengubah parameter ini setelah membuat lingkungan.

  • machine_type dalam blok node_config menentukan jenis mesin untuk VM node. Saat Anda menentukan kolom ini, berikan juga zona Compute Engine untuk VM lingkungan Anda di kolom zone.

    Jenis mesin untuk node adalah jenis mesin Compute Engine yang digunakan untuk instance cluster. Parameter ini menentukan jumlah CPU dan jumlah memori untuk lingkungan Anda. Jenis mesin default adalah n1-standard-1.

    Untuk mengubah nilai ini setelah membuat lingkungan, Anda harus mengonfigurasi ulang cluster lingkungan secara manual.

  • machine_type dalam blok database_config menentukan jenis mesin untuk instance Cloud SQL.

    Parameter ini menentukan jenis mesin untuk instance Cloud SQL yang menjalankan database Airflow. Jenis mesin Cloud SQL default adalah db-n1-standard-2.

  • machine_type dalam blok web_server_config menentukan jenis mesin untuk instance server web Airflow.

    Parameter ini menentukan jenis mesin untuk instance Compute Engine yang menjalankan server web Airflow.

    Jenis mesin server web default adalah composer-n1-webserver-2.

  • Kolom scheduler_count di blok software_config menentukan jumlah penjadwal di lingkungan Anda. Lingkungan Anda harus menggunakan Airflow 2.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      node_count = NODE_COUNT
      disk_size_gb = DISK_SIZE
      machine_type = "NODE_MACHINE_TYPE"
      zone = "NODE_ZONE"
    }

    software_config {
      scheduler_count = SCHEDULER_COUNT
    }

    database_config {
      machine_type = "SQL_MACHINE_TYPE"
    }

    web_server_config {
      machine_type = "WS_MACHINE_TYPE"
    }
  }
}

Ganti:

  • NODE_COUNT dengan jumlah node.
  • DISK_SIZE dengan ukuran disk untuk VM lingkungan, dalam GB.
  • NODE_MACHINE_TYPE dengan jenis mesin untuk VM node.
  • NODE_ZONE dengan zona Compute Engine untuk VM lingkungan Anda.
  • SCHEDULER_COUNT dengan jumlah penjadwal.
  • SQL_MACHINE_TYPE dengan jenis mesin untuk instance Cloud SQL.
  • WS_MACHINE_TYPE dengan jenis mesin untuk instance server web Airflow.

Contoh:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {

    node_config {
      node_count = 4
      disk_size_gb = 100
      zone = "us-central1-a"
      machine_type = "n1-standard-2"
    }

    software_config {
      scheduler_count = 2
    }

    database_config {
      machine_type = "db-n1-standard-2"
    }

    web_server_config {
      machine_type = "composer-n1-webserver-2"
    }
  }
}

Langkah 4. (Opsional) Mengonfigurasi jaringan lingkungan Anda

Parameter jaringan bergantung pada jenis lingkungan yang ingin Anda buat:

  • Lingkungan IP publik menggunakan parameter jaringan default.

  • Lingkungan IP pribadi (peering VPC). Dalam konfigurasi ini, lingkungan Anda menggunakan peering VPC untuk konektivitas.

    Konfigurasi lingkungan IP Pribadi Anda:

    1. Mengonfigurasi jaringan project untuk lingkungan IP Pribadi.
    2. 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 server web.

      • 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 dalam 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 masih perlu menentukan jaringan VPC project host, subnetwork, dan rentang IP sekunder untuk pod dan layanan.

  • Untuk membuat lingkungan SC VPC, Anda harus membuat perimeter layanan, lalu membuat lingkungan IP Pribadi di dalam perimeter ini. Ikuti petunjuk yang diuraikan dalam Mengonfigurasi Kontrol Layanan VPC.

  • Opsi jaringan tambahan untuk lingkungan adalah:

    • Alamat IP publik yang digunakan secara pribadi. Jika 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 IP Masquerade, Anda dapat menggunakan terjemahan alamat IP many-to-one dalam konfigurasi jaringan lingkungan Anda. Untuk mengetahui informasi selengkapnya tentang cara membuat lingkungan dengan agen IP Masquerade, lihat Mengaktifkan agen IP Masquerade.

Konsol

Untuk membuat lingkungan IP Pribadi:

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

  2. Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.

  3. Di bagian Network configuration, pilih kotak centang Enable VPC-native (menggunakan alias-IP).

  4. Dalam menu drop-down Network, pilih ID jaringan VPC Anda.

  5. Dalam menu drop-down Subnetwork, pilih ID subnetwork VPC Anda.

  6. Di bagian Alokasi Alamat IP Pod, tentukan rentang IP sekunder untuk pod. Anda dapat menggunakan rentang sekunder yang ada di jaringan VPC, atau menentukan rentang baru di notasi CIDR.

  7. Di bagian Alokasi Alamat IP Layanan, tentukan rentang IP sekunder untuk layanan. Anda dapat menggunakan rentang sekunder yang ada di jaringan VPC, atau menentukan rentang baru di notasi CIDR.

  8. Di bagian Private IP, centang kotak Enable private IP.

  9. Di bagian GKE cluster master private IP, tentukan rentang IP untuk bidang kontrol GKE:

    • Agar dapat menggunakan rentang IP default untuk wilayah tempat lingkungan Anda berada, pilih Rentang IP default.

    • Untuk menentukan rentang IP kustom, pilih Custom IP range, lalu masukkan rentang dalam notasi CIDR di kolom GKE cluster master private IP.

  10. Pilih akses level untuk bidang kontrol GKE. Bidang kontrol memiliki dua titik akhir. Satu endpoint bersifat pribadi untuk digunakan oleh node cluster dan VM. Endpoint lain adalah publik. Anda dapat menentukan tingkat akses untuk endpoint publik:

    • Untuk mengaktifkan akses ke endpoint publik dari jaringan yang diizinkan, centang kotak Akses endpoint master menggunakan alamat IP eksternalnya.

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Public endpoint access enabled, allowed networks enabled". Hal ini menyediakan 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 pelanggan.

    • Untuk menonaktifkan akses ke endpoint publik dari jaringan yang diizinkan, hapus centang pada kotak Akses endpoint master menggunakan alamat IP eksternalnya.

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Public endpoint access disabled". Tindakan ini akan mencegah semua akses internet ke bidang kontrol.

  11. Di bagian IP pribadi Server Web, tentukan rentang IP untuk instance server web Airflow.

  12. Di bagian IP pribadi Cloud SQL, tentukan rentang IP untuk instance Cloud SQL.

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-ip-alias mengaktifkan VPC Native menggunakan alamat IP alias.

    Parameter ini diperlukan saat menggunakan --enable-private-environment atau saat mengonfigurasi rentang sekunder untuk pod dan layanan.

  • --enable-private-environment mengaktifkan lingkungan IP Pribadi.

  • --network menentukan ID jaringan VPC Anda.

  • --subnetwork menentukan ID subnetwork VPC Anda.

  • --cluster-secondary-range-name atau --cluster-ipv4-cidr mengonfigurasi rentang sekunder untuk pod.

  • --services-secondary-range-name atau --services-ipv4-cidr guna mengonfigurasi rentang sekunder untuk layanan.

  • --master-ipv4-cidr menentukan rentang untuk bidang kontrol GKE.

  • --web-server-ipv4-cidr menentukan rentang untuk instance server web Airflow.

  • --cloud-sql-ipv4-cidr menentukan rentang untuk instance Cloud SQL.

  • --enable-private-endpoint mengontrol akses level untuk bidang kontrol GKE. Bidang kontrol memiliki dua titik akhir. Satu endpoint bersifat pribadi untuk digunakan oleh node cluster dan VM. Endpoint lain adalah publik. Anda dapat menentukan tingkat akses untuk endpoint publik:

    • Untuk mengaktifkan akses ke endpoint publik dari jaringan yang diizinkan, hapus argumen --enable-private-endpoint.

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Public endpoint access enabled, allowed networks enabled". Hal ini menyediakan 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 pelanggan.

    • Untuk menonaktifkan akses ke endpoint publik dari jaringan yang diizinkan, tentukan argumen --enable-private-endpoint.

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Public endpoint access disabled". Tindakan ini akan mencegah semua akses internet ke bidang kontrol.

  • --enable-ip-masq-agent mengaktifkan agen IP Masquerade.

gcloud composer environments create ENVIRONMENT_NAME \
  --location LOCATION \
  --image-version composer-1.20.12-airflow-1.10.15 \
  --enable-ip-alias \
  --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 \
  --web-server-ipv4-cidr WEB_SERVER_RANGE \
  --cloud-sql-ipv4-cidr SQL_RANGE

Ganti:

  • NETWORK_ID dengan ID jaringan VPC Anda.
  • SUBNETWORK_ID dengan ID subnetwork VPC Anda.
  • PODS_RANGE dengan rentang sekunder untuk pod.
  • SERVICES_RANGE dengan rentang sekunder untuk layanan.
  • CONTROL_PLANE_RANGE dengan rentang sekunder untuk bidang kontrol GKE.

  • WEB_SERVER_RANGE dengan rentang sekunder untuk instance server web Airflow.

  • SQL_RANGE dengan rentang untuk instance Cloud SQL.

Langkah 5. (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 Node configuration.
  2. Di kolom Tags, tentukan tag instance untuk VM node.

gcloud

Saat Anda membuat lingkungan, argumen berikut akan 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-1.20.12-airflow-1.10.15 \
    --tags TAGS

Ganti:

  • TAGS dengan daftar tag jaringan yang dipisahkan koma.

Contoh:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --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"
      ]
    }
  }
}

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"
      ]
    }
  }
}

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" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      tags = ["TAGS"]
    }
  }
}

Ganti:

  • TAGS dengan daftar tag jaringan yang dipisahkan koma.

Contoh:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {
    node_config {
      tags = ["group1","production"]
    }
  }
}

Langkah 6. (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.

Saat ini Anda tidak dapat mengonfigurasi rentang IP yang diizinkan menggunakan alamat IP pribadi.

Konsol

Di halaman Create environment, di bagian Web server configuration:

  • 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 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 Tambahkan rentang IP.

  • Untuk melarang akses ke semua alamat IP, pilih Allow access only from tertentu 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-all menyediakan akses ke Airflow dari semua alamat IP. Opsi ini adalah opsi default.

  • --web-server-allow-ip hanya membatasi akses 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-1.20.12-airflow-1.10.15 \
    --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-1.20.12-airflow-1.10.15 \
    --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 menentukan rentang IP di dalamnya.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "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:


// 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"
        }
      ]
    }
  }
}

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"
      }

    }

  }
}

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"
      }

    }
}

Langkah 7. (Opsional) Menentukan penggantian konfigurasi dan variabel lingkungan Airflow

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 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. Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.

  2. Di bagian Environment variables, klik Add environment variable.

  3. Masukkan Nama dan Nilai untuk variabel lingkungan.

  4. Di bagian Airflow configuration override, klik Add Airflow configuration override.

  5. Masukkan Section, Key, dan Value untuk penggantian opsi konfigurasi.

    Contoh:

    Bagian Kunci Nilai
    webserver dag_orientation TB

gcloud

Saat Anda membuat lingkungan, argumen berikut akan 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, serta 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-1.20.12-airflow-1.10.15 \
    --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-1.20.12-airflow-1.10.15 \
    --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",
      }
    }
  }
}

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"
      }
    }
  }
}

Terraform

Saat Anda membuat lingkungan, blok berikut akan mengontrol variabel lingkungan dan penggantian konfigurasi Airflow:

  • Blok env_variables dalam blok software_config menentukan variabel lingkungan.

    Nama variabel dapat berisi huruf besar dan kecil, angka, serta garis bawah, tetapi tidak boleh diawali dengan angka.

  • Blok airflow_config_overrides dalam blok software_config menentukan penggantian konfigurasi Airflow.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    software_config {

      airflow_config_overrides = {
        SECTION-KEY = "OVERRIDE_VALUE"
      }

      env_variables = {
        VAR_NAME = "VAR_VALUE"
      }
    }
  }
}

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" {
  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"
      }
    }
  }
}

Langkah 8. (Opsional) Menentukan masa pemeliharaan

Secara default, masa pemeliharaan adalah pukul 00.00.00 hingga 04.00.00 (GMT) pada hari Jumat, Sabtu, dan Minggu setiap minggu.

Untuk menentukan masa pemeliharaan lingkungan Anda:

Konsol

Di halaman Create environment:

  1. Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.

  2. Di bagian Periode pemeliharaan, centang kotak Setel waktu kustom untuk masa pemeliharaan.

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

  4. Menetapkan Start time, Days, dan Length, sehingga waktu gabungan untuk jadwal yang ditentukan setidaknya 12 jam dalam periode berputar 7 hari. Misalnya, periode 4 jam setiap hari Senin, Rabu, dan Jumat memberikan jumlah waktu yang diperlukan.

gcloud

Argumen berikut menentukan parameter masa pemeliharaan:

  • --maintenance-window-start menetapkan waktu mulai masa pemeliharaan.
  • --maintenance-window-end menetapkan waktu berakhir masa pemeliharaan.
  • --maintenance-window-recurrence menetapkan pengulangan masa pemeliharaan.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --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 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 RRules RFC 5545 untuk pengulangan periode pemeliharaan. Cloud Composer mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

  • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari yang dipilih 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 akan diabaikan.

gcloud composer environments create example-environment \
  --location us-central1 \
  --image-version composer-1.20.12-airflow-1.10.15 \
  --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 jendela pemeliharaan:

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "maintenanceWindow": {
        "startTime": "DATETIME_START",
        "endTime": "DATETIME_END",
        "recurrence": "MAINTENANCE_RECURRENCE"
    }
  }
}

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 RFC 5545 RRules untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

  • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari yang dipilih 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 akan 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"
    }
  }
}

Terraform

Blok maintenance_window menentukan masa pemeliharaan untuk lingkungan Anda:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {
    maintenance_window {
      start_time = "DATETIME_START"
      end_time = "DATETIME_END"
      recurrence = "MAINTENANCE_RECURRENCE"
    }
  }
}

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 RFC 5545 RRules untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

    • Format FREQ=DAILY menentukan pengulangan harian.
    • Format FREQ=WEEKLY;BYDAY=SU,MO,TU,WE,TH,FR,SA menentukan pengulangan pada hari yang dipilih 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 akan 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 9. (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 10. (Opsional) Menentukan label lingkungan

Anda dapat menetapkan label ke lingkungan untuk membagi biaya penagihan berdasarkan label ini.

Konsol

Di halaman Create environment:

  1. Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.

  2. Di bagian Labels, klik Add label.

  3. Di kolom Kunci dan Nilai, tentukan pasangan kunci dan nilai untuk label lingkungan.

gcloud

Saat Anda membuat lingkungan, argumen --labels akan menentukan daftar kunci dan nilai yang dipisahkan koma dengan label lingkungan.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --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-1.20.12-airflow-1.10.15 \
    --labels owner=engineering-team,env=production

API

Saat membuat lingkungan, di resource Environment, tentukan label untuk lingkungan Anda.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "labels": {
    "LABEL_KEY": "LABEL_VALUE"
  }
}

Ganti:

  • LABEL_KEY dengan kunci label lingkungan.
  • LABEL_VALUE dengan nilai label lingkungan.

Contoh:


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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "labels": {
    "owner": "engineering-team",
    "env": "production"
  }
}

Terraform

Saat Anda membuat lingkungan, tentukan label dalam blok labels (di luar blok config).

resource "google_composer_environment" "example" {
  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" {
  name = "example-environment"
  region = "us-central1"

  labels = {
    owner = "engineering-team"
    env = "production"
  }

}

Langkah 11. (Opsional) Mengonfigurasi parameter lainnya

Parameter lainnya mencakup:

  • Zona untuk node lingkungan Anda

    Zona Compute Engine tempat node cluster di-deploy. Dalam parameter ini, Anda dapat memilih zona tertentu di lokasi lingkungan Anda.

    Secara default, zona acak dipilih secara otomatis.

  • Cakupan OAuth

    Cakupan OAuth adalah sekumpulan cakupan Google API yang akan tersedia di semua VM node. Jika kosong, nilai defaultnya adalah https://www.googleapis.com/auth/cloud-platform.

    Jika Anda menentukan cakupan OAuth kustom, sertakan https://www.googleapis.com/auth/cloud-platform dalam daftar cakupan yang ditentukan.

  • Versi Python

    Jika lingkungan Anda menggunakan Airflow 1.10.* dan versi Airflow yang lebih lama, Anda dapat memanfaatkan Python 2 untuk lingkungan Anda. Versi Python default adalah Python 3. Untuk mengetahui informasi selengkapnya mengenai dukungan Python 2 di Cloud Composer, lihat Versi Python yang didukung.

Konsol

Di halaman Create environment:

  1. Di bagian Konfigurasi node:

    • Di menu drop-down Zone, pilih zona untuk node lingkungan Anda.

      Anda tidak dapat mengubah zona nanti.

    • Di kolom OAuth Scopes, tentukan cakupan OAuth untuk VM node.

      Anda tidak dapat mengubah cakupan OAuth nanti.

      Untuk menentukan beberapa cakupan OAuth, berikan daftar nilai yang dipisahkan koma. Sertakan https://www.googleapis.com/auth/cloud-platform dalam daftar cakupan yang ditentukan.

    • Di kolom Python version, pilih versi Python.

      Anda tidak dapat mengubah versi Python nanti.

gcloud

Saat Anda membuat lingkungan, argumen berikut mengontrol berbagai parameter lingkungan Anda:

  • --zone menentukan zona Compute Engine untuk VM lingkungan Anda.

  • --oauth-scopes menentukan daftar cakupan OAuth yang dipisahkan koma. Sertakan https://www.googleapis.com/auth/cloud-platform dalam daftar cakupan yang ditentukan.

  • --python-version menentukan versi Python.

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone ZONE \
    --oauth-scopes OAUTH_SCOPES \
    --python-version PYTHON_VERSION

Ganti:

  • ZONE dengan nama zona Compute Engine.
  • OAUTH_SCOPES dengan daftar cakupan OAuth yang dipisahkan koma.
  • PYTHON_VERSION dengan versi Python (3 atau 2).

Contoh:

gcloud composer environments create example-environment \
    --location us-central1 \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --zone us-central1-a \
    --oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery  \
    --python-version 3

API

Saat Anda membuat lingkungan, di resource Environment > EnvironmentConfig, tentukan parameter lingkungan Anda yang lain.

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "location": "projects/PROJECT_ID/zones/ZONE",
      "oauthScopes": [
        "OAUTH_SCOPE"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "PYTHON_VERSION"
    }
  }
}

Ganti:

  • ZONE dengan nama zona Compute Engine.
  • OAUTH_SCOPE dengan cakupan OAuth. Untuk menentukan cakupan tambahan, tambahkan cakupan https://www.googleapis.com/auth/cloud-platform, diikuti dengan item cakupan tambahan. cakupan.
  • PYTHON_VERSION dengan versi Python (3 atau 2).

Contoh:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "nodeConfig": {
      "location": "projects/example-project/zones/us-central1-a",
      "oauthScopes": [
        "https://www.googleapis.com/auth/cloud-platform",
        "https://www.googleapis.com/auth/bigquery"
      ]
    },
    "softwareConfig": {
        "pythonVersion": "3"
    }
  }
}

Terraform

Saat Anda membuat lingkungan, kolom berikut mengontrol berbagai parameter lingkungan Anda:

  • Kolom zone di blok node_config menentukan zona Compute Engine untuk VM lingkungan Anda.

  • Kolom oauth_scopes di blok node_config menentukan daftar cakupan OAuth yang dipisahkan koma.

  • Kolom python_version dalam blok software_config menentukan versi Python.

resource "google_composer_environment" "example" {
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    node_config {
      zone = "ZONE"
      oauth_scopes = "[OAUTH_SCOPES]"
    }

    software_config {
      python_version = "PYTHON_VERSION"
    }
  }
}

Ganti:

  • ZONE dengan nama zona Compute Engine.
  • OAUTH_SCOPES dengan daftar cakupan OAuth yang dipisahkan koma.
  • PYTHON_VERSION dengan versi Python (3 atau 2).

Contoh:

resource "google_composer_environment" "example" {
  name = "example-environment"
  region = "us-central1"

  config {
    node_config {
      zone = "us-central1-a"
      oauth_scopes = "[https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery]"
    }
    software_config {
      python_version = "3"
    }
  }
}

Langkah 12. (Opsional) Terapkan penggunaan API Beta

Anda dapat secara eksplisit membuat lingkungan menggunakan Cloud Composer API beta, meskipun lingkungan Anda tidak memiliki fitur pratinjau. Jika Anda melakukannya, lingkungan akan dibuat menggunakan endpoint layanan v1beta1.

Konsol

Di halaman Create environment:

  1. Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.

  2. Di bagian Beta API, centang kotak Enforce the usage of Beta API.

gcloud

Buat lingkungan Anda menggunakan perintah gcloud beta composer.

API

Buat lingkungan Anda menggunakan endpoint layanan v1beta1.

Terraform

Penyedia Terraform untuk Cloud Composer menggunakan API beta secara default.

Langkah selanjutnya