Membuat lingkungan Cloud Composer

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Halaman ini menjelaskan cara membuat lingkungan Cloud Composer.

Sebelum memulai

Langkah 1. Membuat atau memilih akun layanan lingkungan

Saat membuat lingkungan, Anda harus menentukan akun layanan. Akun layanan ini disebut akun layanan lingkungan. Lingkungan Anda menggunakan akun layanan ini untuk melakukan sebagian besar operasi.

Akun layanan untuk lingkungan Anda bukan akun pengguna. Akun layanan adalah jenis akun khusus yang digunakan oleh aplikasi atau instance virtual machine (VM), bukan orang.

Anda tidak dapat mengubah akun layanan lingkungan Anda nanti.

Jika Anda belum memiliki akun layanan untuk lingkungan Cloud Composer di project, buat akun layanan.

Lihat Membuat lingkungan (Terraform) untuk contoh lengkap pembuatan 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 tersebut, seperti yang dijelaskan dalam dokumentasi Identity and Access Management. Peran yang diperlukan adalah Pekerja Composer (composer.worker).

  3. Jika lingkungan Anda menggunakan batasan lokasi resource atau menginstal paket PyPI dari indeks paket pribadi, berikan peran Service Account User (iam.serviceAccountUser) ke akun layanan yang dikelola pengguna yang menjalankan lingkungan Anda.

  4. Untuk mengakses resource lain di project Google Cloud Anda, berikan izin tambahan untuk mengakses resource tersebut ke akun layanan ini. Peran Pekerja Composer (composer.worker) menyediakan kumpulan izin yang diperlukan ini dalam sebagian besar kasus. Tambahkan izin tambahan ke akun layanan ini hanya jika diperlukan untuk pengoperasian DAG Anda.

Langkah 2. Penyiapan dasar

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

Konsol

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

    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 untuk lingkungan, sehingga Anda harus memberikan nama yang juga valid sebagai nama bucket Cloud Storage. Lihat Panduan penamaan bucket untuk mengetahui daftar pembatasan.

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

    Lokasi adalah region tempat lingkungan berada.

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

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

    Jika Anda belum memiliki akun layanan untuk lingkungan, lihat Membuat atau memilih akun layanan lingkungan.

gcloud

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version IMAGE_VERSION \
    --service-account "SERVICE_ACCOUNT"

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.

    Nama harus dimulai dengan huruf kecil, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen untuk lingkungan, sehingga 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 Cloud Composer.

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

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

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

Ganti:

  • PROJECT_ID dengan Project ID.

  • LOCATION dengan region untuk lingkungan.

    Lokasi adalah region tempat lingkungan berada.

  • ENVIRONMENT_NAME dengan nama lingkungan.

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

  • IMAGE_VERSION dengan nama image Cloud Composer.

  • SERVICE_ACCOUNT dengan akun layanan untuk lingkungan Anda.

Contoh:

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

{
  "name": "projects/example-project/locations/us-central1/environments/example-environment",
  "config": {
    "softwareConfig": {
      "imageVersion": "composer-1.20.12-airflow-1.10.15"
    },
    "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, diikuti dengan maksimal 62 huruf kecil, angka, atau tanda hubung, dan tidak boleh diakhiri dengan tanda hubung. Nama lingkungan digunakan untuk membuat subkomponen untuk lingkungan, sehingga 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.

  • IMAGE_VERSION dengan nama image Cloud Composer.

  • SERVICE_ACCOUNT dengan akun layanan untuk lingkungan Anda.

Contoh:

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

  config {
    software_config {
      image_version = "composer-1.20.12-airflow-1.10.15"
    }
    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 untuk 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 Node configuration:

    • Masukkan Jumlah node.

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

      Anda dapat mengubah nilai ini setelah membuat lingkungan.

    • Pilih Jenis mesin 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-nya 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 node di lingkungan Anda memiliki jumlah ruang disk ini. Pilih ukuran disk yang lebih besar jika Anda ingin menyimpan data dalam jumlah besar di folder yang disinkronkan dengan VM lingkungan. Misalnya, di folder /data bucket lingkungan Anda.

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

    • Pilih Number of schedulers.

      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.

      Meningkatkan jumlah penjadwal tidak selalu meningkatkan performa Airflow. Misalnya, hanya memiliki satu penjadwal mungkin memberikan performa yang lebih baik daripada memiliki dua. Hal ini dapat terjadi jika penjadwal tambahan tidak digunakan, sehingga menggunakan resource lingkungan Anda tanpa berkontribusi pada performa secara 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 awal.

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

  2. Luaskan item Jaringan, 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 Konfigurasi server web, pilih Jenis mesin server web.

    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 akan mengontrol parameter performa dan skala lingkungan:

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

    Jumlah node adalah jumlah node Google Kubernetes Engine di cluster 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.

    Meningkatkan jumlah penjadwal tidak selalu meningkatkan performa Airflow. Misalnya, hanya memiliki satu penjadwal mungkin memberikan performa yang lebih baik daripada memiliki dua. Hal ini dapat terjadi jika penjadwal tambahan tidak digunakan, sehingga menggunakan resource lingkungan Anda tanpa berkontribusi pada performa secara 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 awal.

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

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

    Ukuran disk, dalam GB, untuk node lingkungan. Setiap node di lingkungan Anda memiliki jumlah ruang disk ini. Pilih ukuran disk yang lebih besar jika Anda ingin menyimpan data dalam jumlah besar di folder yang disinkronkan dengan VM lingkungan. Misalnya, di folder /data bucket lingkungan Anda.

    Ukuran minimumnya adalah 30 GB. Ukuran default-nya 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-nya 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 \
    --service-account "SERVICE_ACCOUNT" \
    --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 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --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 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,
      "serviceAccount": "SERVICE_ACCOUNT"
    },
    "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,
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    },
    "softwareConfig": {
      "schedulerCount": 1
    },
    "databaseConfig": {
      "machineType": "db-n1-standard-2"
    },
    "webServerConfig": {
      "machineType": "composer-n1-webserver-2"
    }
  }
}

Terraform

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

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

    Jumlah node adalah jumlah node Google Kubernetes Engine di cluster 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 node di lingkungan Anda memiliki jumlah ruang disk ini. Pilih ukuran disk yang lebih besar jika Anda ingin menyimpan data dalam jumlah besar di folder yang disinkronkan dengan VM lingkungan. Misalnya, di folder /data bucket lingkungan Anda.

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

  • machine_type di 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-nya adalah n1-standard-1.

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

  • machine_type di 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 di 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"
      service_account = "SERVICE_ACCOUNT"
    }

    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"
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }

    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. Gunakan parameter jaringan default.

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

    Konfigurasikan 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 di project layanan. Ikuti petunjuk di halaman Mengonfigurasi VPC Bersama.

    Untuk lingkungan VPC Bersama, Anda perlu mengetahui:

    • ID jaringan VPC project host Anda
    • ID subjaringan 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, subjaringan, dan rentang IP sekunder project host untuk pod dan layanan.

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

Opsi jaringan tambahan untuk lingkungan adalah:

  • Alamat IP publik yang digunakan secara pribadi. Jika Anda ingin menggunakan lebih banyak alamat IP, lingkungan Anda dapat secara pribadi menggunakan rentang alamat IP publik tertentu sebagai rentang alamat IP subnet internal untuk pod dan layanan.
  • Jaringan yang diizinkan. Jika ingin mengakses bidang kontrol lingkungan IP Pribadi menggunakan HTTPS, Anda dapat menggunakan jaringan yang diizinkan untuk menentukan rentang CIDR yang dapat melakukannya.
  • Agen Penyamaran IP. Dengan menggunakan lingkungan dengan agen Penyamaran IP, Anda dapat menggunakan terjemahan alamat IP many-to-one dalam konfigurasi jaringan lingkungan. Untuk mengetahui informasi selengkapnya tentang cara membuat lingkungan dengan agen Penyamaran IP, lihat Mengaktifkan agen Penyamaran IP.

Konsol

Untuk membuat lingkungan IP Pribadi:

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

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

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

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

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

  6. Di bagian Pod IP Address Allocation, tentukan rentang IP sekunder untuk pod. Anda dapat menggunakan rentang sekunder yang ada di jaringan VPC, atau menentukan rentang baru dalam 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 dalam notasi CIDR.

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

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

    • Untuk menggunakan rentang IP default untuk region tempat lingkungan Anda berada, pilih Rentang IP default.

    • Untuk menentukan rentang IP kustom, pilih Rentang IP kustom dan masukkan rentang dalam notasi CIDR di kolom IP pribadi master cluster GKE.

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

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

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Akses endpoint publik diaktifkan, jaringan yang diizinkan diaktifkan". Tindakan ini memberikan akses terbatas ke bidang kontrol dari jaringan yang diizinkan. Secara default, tidak ada alamat IP sumber yang ditentukan. Anda dapat menambahkan jaringan yang diizinkan ke cluster.

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

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Akses endpoint publik dinonaktifkan". Tindakan ini mencegah semua akses internet ke bidang kontrol.

  11. Di bagian Web Server private IP, 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 dibuat.

Saat Anda membuat lingkungan, argumen berikut akan mengontrol parameter jaringan. Jika Anda menghapus parameter, nilai default akan digunakan.

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

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

  • --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 untuk 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 endpoint. Satu endpoint bersifat pribadi, untuk digunakan oleh node dan VM cluster. Endpoint lainnya bersifat publik. Anda dapat menentukan tingkat akses untuk endpoint publik:

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

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Akses endpoint publik diaktifkan, jaringan yang diizinkan diaktifkan". Tindakan ini memberikan akses terbatas ke bidang kontrol dari jaringan yang diizinkan. Secara default, tidak ada alamat IP sumber yang ditentukan. Anda dapat menambahkan jaringan yang diizinkan ke cluster.

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

      Penggunaan opsi ini akan menetapkan tingkat akses untuk bidang kontrol ke "Akses endpoint publik dinonaktifkan". Tindakan ini mencegah semua akses internet ke bidang kontrol.

  • Argumen --enable-master-authorized-networks dan --master-authorized-networks mengonfigurasi jaringan yang diotorisasi untuk lingkungan Anda.

  • --enable-privately-used-public-ips mengonfigurasi alamat IP publik yang digunakan secara pribadi untuk lingkungan Anda.

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

Contoh (Lingkungan IP pribadi )

gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --service-account "SERVICE_ACCOUNT" \
    --enable-private-environment \
    --enable-ip-alias \
    --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 Konfigurasi node.
  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 \
    --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-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"
      ],
      "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 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.

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 Deskripsi, tentukan deskripsi opsional untuk rentang ini. Jika Anda ingin menentukan lebih dari satu rentang, klik Tambahkan rentang IP.

  • 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 akan 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 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 \
    --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 7. (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 Airflow dan variabel lingkungan:

Konsol

Di halaman Create environment:

  1. Luaskan item Jaringan, 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 Penggantian konfigurasi Airflow, klik Tambahkan Penggantian konfigurasi Airflow.

  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, 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-1.20.12-airflow-1.10.15 \
    --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-1.20.12-airflow-1.10.15 \
    --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 akan 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 Alur Data.

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 8. (Opsional) Tentukan masa pemeliharaan

Secara default, lingkungan Cloud Composer 1 tidak memiliki periode pemeliharaan yang ditentukan jika Anda membuatnya menggunakan Konsol Google Cloud, API, atau Terraform. Sebaiknya tentukan periode pemeliharaan untuk lingkungan baru dan yang sudah ada.

Jika Anda membuat lingkungan menggunakan gcloud CLI, lingkungan Anda memiliki periode pemeliharaan default dari 00.00.00 hingga 04.00.00 (GMT) pada hari Jumat, Sabtu, dan Minggu setiap minggu.

Untuk menentukan masa pemeliharaan kustom untuk lingkungan Anda:

Konsol

Di halaman Create environment:

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

  2. Di bagian Masa pemeliharaan, pilih kotak centang Tetapkan waktu kustom untuk masa pemeliharaan.

  3. Di menu drop-down Zona waktu, pilih zona waktu untuk periode pemeliharaan.

  4. Tetapkan Waktu mulai, Hari, dan Durasi, sehingga waktu gabungan untuk jadwal yang ditentukan minimal 12 jam dalam periode rolling 7 hari. Misalnya, periode 4 jam setiap hari Senin, Rabu, dan Jumat memberikan jumlah waktu yang diperlukan.

gcloud

Argumen berikut menentukan parameter periode pemeliharaan:

  • --maintenance-window-start menetapkan waktu mulai masa pemeliharaan.
  • --maintenance-window-end menetapkan waktu akhir masa pemeliharaan.
  • --maintenance-window-recurrence menetapkan pengulangan periode pemeliharaan.
gcloud composer environments create ENVIRONMENT_NAME \
    --location LOCATION \
    --image-version composer-1.20.12-airflow-1.10.15 \
    --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 hari yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu hari yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

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

Contoh berikut menentukan periode 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 \
  --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
  --maintenance-window-start '2023-01-01T01:00:00Z' \
  --maintenance-window-end '2023-01-01T07:00:00Z' \
  --maintenance-window-recurrence 'FREQ=WEEKLY;BYDAY=SU,WE,SA'

API

Saat Anda membuat lingkungan, di resource Environment > EnvironmentConfig, tentukan parameter periode pemeliharaan:

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

Ganti:

  • DATETIME_START dengan tanggal dan waktu mulai dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

  • Format FREQ=DAILY menentukan pengulangan harian.

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

Contoh berikut menentukan periode 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"
    },
    "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 yang digunakan, tanggal yang ditentukan akan diabaikan.
  • DATETIME_END dengan tanggal dan waktu akhir dalam format input tanggal/waktu. Hanya waktu yang ditentukan yang digunakan, tanggal yang ditentukan akan diabaikan. Tanggal dan waktu yang ditentukan harus setelah tanggal mulai.
  • MAINTENANCE_RECURRENCE dengan RRULE RFC 5545 untuk pengulangan masa pemeliharaan. Cloud Composer mendukung dua format:

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

Contoh berikut menentukan periode 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 mengelompokkan biaya penagihan berdasarkan label ini.

Konsol

Di halaman Create environment:

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

  2. Di bagian Labels, klik Add label.

  3. Di kolom Key dan Value, tentukan pasangan kunci dan nilai 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-1.20.12-airflow-1.10.15 \
    --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-1.20.12-airflow-1.10.15 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --labels owner=engineering-team,env=production

API

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

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

Ganti:

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

Contoh:


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

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

Terraform

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

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

  labels = {
    LABEL_KEY = "LABEL_VALUE"
  }

}

Ganti:

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

Contoh:

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

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

}

Langkah 11. (Opsional) Konfigurasikan parameter lainnya

Parameter lainnya mencakup:

  • Zona untuk node lingkungan Anda

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

    Secara default, zona acak dipilih secara otomatis.

  • Cakupan OAuth

    Cakupan OAuth adalah kumpulan cakupan Google API yang akan disediakan di semua VM node. Jika kosong, setelan 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 sebelumnya, Anda dapat membuat lingkungan menggunakan Python 2. Versi Python default-nya adalah Python 3. Untuk mengetahui informasi selengkapnya tentang dukungan Python 2 di Cloud Composer, lihat Versi Python yang didukung.

Konsol

Di halaman Create environment:

  1. Di bagian Node configuration:

    • 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 akan mengontrol parameter lainnya di 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 \
    --service-account "SERVICE_ACCOUNT" \
    --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 \
    --service-account "
example-account@example-project.iam.gserviceaccount.com
" \
    --zone us-central1-a \
    --oauth-scopes https://www.googleapis.com/auth/cloud-platform,https://www.googleapis.com/auth/bigquery  \
    --python-version 3

API

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

{
  "name": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
  "config": {
    "nodeConfig": {
      "location": "projects/PROJECT_ID/zones/ZONE",
      "oauthScopes": [
        "OAUTH_SCOPE"
      ],
      "serviceAccount": "SERVICE_ACCOUNT"
    },
    "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.
  • 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"
      ],
      "serviceAccount": "
example-account@example-project.iam.gserviceaccount.com
"
    },
    "softwareConfig": {
        "pythonVersion": "3"
    }
  }
}

Terraform

Saat Anda membuat lingkungan, kolom berikut akan mengontrol parameter lainnya di 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 di 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]"
      service_account = "SERVICE_ACCOUNT"
    }

    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]"
      service_account = "
example-account@example-project.iam.gserviceaccount.com
"
    }
    software_config {
      python_version = "3"
    }
  }
}

Langkah 12. (Opsional) Menerapkan penggunaan Beta API

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

Konsol

Di halaman Create environment:

  1. Luaskan item Jaringan, 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