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.
- Untuk mengetahui informasi selengkapnya tentang lingkungan, lihat Arsitektur lingkungan.
- Untuk mengetahui informasi lebih lanjut mengenai cara membuat lingkungan dengan Terraform, baca artikel Membuat lingkungan (Terraform).
Sebelum memulai
Aktifkan Cloud Composer API. Untuk mengetahui daftar lengkap layanan yang digunakan oleh Cloud Composer, lihat Layanan yang diperlukan oleh Cloud Composer.
Perkiraan waktu untuk membuat lingkungan adalah 25 menit.
Selama pembuatan lingkungan, Anda menentukan akun layanan. Node di cluster lingkungan Anda dijalankan sebagai akun ini.
Secara default, lingkungan Cloud Composer menggunakan akun layanan Compute Engine default yang dikelola Google. Sebaiknya Anda membuat akun layanan yang dikelola pengguna yang memiliki peran khusus untuk Cloud Composer dan menggunakannya untuk lingkungan Anda.
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
Di konsol Google Cloud, buka halaman Create environment untuk Cloud Composer 1.
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.
Di menu drop-down Lokasi, pilih lokasi untuk lingkungan Anda.
Lokasi adalah region tempat cluster GKE lingkungan berada.
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 menggunakancomposer-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 menggunakancomposer-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 menggunakancomposer-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:
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.
Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.
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
.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:
NODE_COUNT
dengan jumlah node.NODE_ZONE
dengan zona Compute Engine untuk VM lingkungan Anda.SCHEDULER_COUNT
dengan jumlah penjadwal.DISK_SIZE
dengan ukuran disk untuk VM lingkungan, dalam GB.NODE_MACHINE_TYPE
dengan jenis mesin untuk VM node.SQL_MACHINE_TYPE
dengan jenis mesin untuk instance Cloud SQL.WS_MACHINE_TYPE
dengan jenis mesin untuk instance server web Airflow.
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 bloknode_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 bloknode_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 bloknode_config
menentukan jenis mesin untuk VM node. Saat Anda menentukan kolom ini, berikan juga zona Compute Engine untuk VM lingkungan Anda di kolomzone
.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 blokdatabase_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 blokweb_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 bloksoftware_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:
- Mengonfigurasi jaringan project untuk lingkungan IP Pribadi.
- Tentukan parameter lain untuk lingkungan IP Pribadi Anda, seperti yang dijelaskan lebih lanjut di bagian ini.
Untuk lingkungan IP Pribadi dengan peering VPC, Anda perlu mengetahui:
- ID jaringan VPC Anda
- ID subnetwork VPC Anda
Dua rentang IP sekunder di subnetwork VPC Anda:
- Rentang IP sekunder untuk pod
- Rentang IP sekunder untuk layanan
Rentang IP untuk komponen lingkungan:
Rentang IP untuk bidang kontrol GKE.
Rentang IP 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:
Pastikan jaringan Anda dikonfigurasi untuk jenis lingkungan yang ingin Anda buat.
Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.
Di bagian Network configuration, pilih kotak centang Enable VPC-native (menggunakan alias-IP).
Dalam menu drop-down Network, pilih ID jaringan VPC Anda.
Dalam menu drop-down Subnetwork, pilih ID subnetwork VPC Anda.
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.
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.
Di bagian Private IP, centang kotak Enable private IP.
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.
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.
Di bagian IP pribadi Server Web, tentukan rentang IP untuk instance server web Airflow.
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:
- Temukan bagian Node configuration.
- 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 bloknode_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:
Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.
Di bagian Environment variables, klik Add environment variable.
Masukkan Nama dan Nilai untuk variabel lingkungan.
Di bagian Airflow configuration override, klik Add Airflow configuration override.
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 pasanganNAME=VALUE
yang dipisahkan koma untuk variabel lingkungan.CONFIG_OVERRIDES
dengan daftar pasanganSECTION-KEY=VALUE
yang dipisahkan koma untuk penggantian konfigurasi. Pisahkan nama bagian konfigurasi dengan simbol-
, diikuti dengan nama kunci. Contoh:core-dags_are_paused_at_creation
.
Contoh:
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-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 bloksoftware_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 bloksoftware_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:
Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.
Di bagian Periode pemeliharaan, centang kotak Setel waktu kustom untuk masa pemeliharaan.
Di menu drop-down Timezone, pilih zona waktu untuk masa pemeliharaan.
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.
- Format
Contoh berikut menentukan masa pemeliharaan 6 jam antara pukul 01.00 dan 07.00 (UTC) pada hari Rabu, Sabtu, dan Minggu. Tanggal 1 Januari 2023 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:
Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.
Di bagian Labels, klik Add label.
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 pasanganKEY=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:
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. Sertakanhttps://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
atau2
).
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 cakupanhttps://www.googleapis.com/auth/cloud-platform
, diikuti dengan item cakupan tambahan. cakupan.PYTHON_VERSION
dengan versi Python (3
atau2
).
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 bloknode_config
menentukan zona Compute Engine untuk VM lingkungan Anda.Kolom
oauth_scopes
di bloknode_config
menentukan daftar cakupan OAuth yang dipisahkan koma.Kolom
python_version
dalam bloksoftware_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
atau2
).
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:
Luaskan item Networking, penggantian konfigurasi Airflow, dan fitur tambahan.
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
- Memecahkan masalah pembuatan lingkungan
- Mengonfigurasi lingkungan Cloud Composer IP pribadi
- Mengonfigurasi VPC Bersama
- Mengonfigurasi Kontrol Layanan VPC
- Menambahkan dan memperbarui DAG
- Mengakses UI Airflow
- Memperbarui dan menghapus lingkungan
- Tentang versi Cloud Composer