Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Apache Airflow mencakup antarmuka pengguna (UI) web yang dapat Anda gunakan untuk mengelola alur kerja (DAG), mengelola lingkungan Airflow, dan melakukan tindakan administratif. Misalnya, Anda dapat menggunakan antarmuka web untuk meninjau progres DAG, menyiapkan koneksi data baru, atau meninjau log dari operasi DAG sebelumnya.
Server web Airflow
Setiap lingkungan Cloud Composer memiliki server web yang menjalankan antarmuka web Airflow. Server web adalah bagian dari Arsitektur lingkungan Cloud Composer.
Sebelum memulai
Anda harus memiliki peran yang dapat melihat lingkungan Cloud Composer. Untuk informasi selengkapnya, lihat Kontrol akses.
Selama pembuatan lingkungan, Cloud Composer mengonfigurasi URL untuk server web yang menjalankan antarmuka web Airflow. URL-nya adalah tidak dapat disesuaikan.
Cloud Composer 2 mendukung Kontrol Akses UI Airflow (Airflow Role-Based Access Control) untuk antarmuka web Airflow.
Jika Kontrol API > Aplikasi pihak ketiga yang tidak dikonfigurasi > opsi Jangan izinkan pengguna mengakses aplikasi pihak ketiga diaktifkan di Google Workspace dan Apache Airflow di Aplikasi Cloud Composer tidak diizinkan secara eksplisit, maka pengguna tidak dapat mengakses UI Airflow, kecuali jika secara eksplisit mengizinkan aplikasi. Untuk mengizinkan akses, lakukan langkah-langkah yang disediakan di Mengizinkan akses ke UI Airflow di Google Workspace.
Mengakses antarmuka web Airflow
Server web Airflow menjalankan
sebagai beban kerja di cluster lingkungan Anda. Server web adalah
di-deploy ke domain composer.googleusercontent.com
dan memberikan akses ke
antarmuka web Airflow.
Cloud Composer 2 menyediakan akses ke antarmuka berdasarkan identitas pengguna dan binding kebijakan IAM yang ditentukan untuk pengguna. Dibandingkan dengan Cloud Composer 1, Cloud Composer 2 menggunakan mekanisme berbeda yang tidak mengandalkan Identity-Aware Proxy.
Mengakses antarmuka web dari Konsol Google Cloud
Untuk mengakses antarmuka web Airflow dari Konsol Google Cloud:
Di Konsol Google Cloud, buka halaman Environments.
Di kolom server web Airflow, ikuti link Airflow untuk lingkungan Anda.
Membatasi akses ke server web Airflow
Lingkungan Composer memungkinkan Anda membatasi akses ke server web Airflow:
- Anda dapat memblokir semua akses, atau mengizinkan akses dari eksternal IPv4 atau IPv6 tertentu Rentang IP.
- Rentang IP yang diizinkan tidak dapat dikonfigurasi menggunakan IP pribadi untuk alamat internal dan eksternal.
Mengambil URL antarmuka web melalui alat command line gcloud
Anda dapat mengakses antarmuka web Airflow dari browser web apa pun. Untuk mendapatkan URL
untuk antarmuka web, masukkan perintah gcloud
berikut:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Ganti kode berikut:
ENVIRONMENT_NAME
: nama lingkungan Anda.LOCATION
: wilayah tempat lingkungan berada.
Perintah gcloud
menampilkan properti Cloud Composer
termasuk URL untuk antarmuka web. URL-nya
tercantum sebagai airflowUri
dan airflowByoidUri
:
- Alamat URL
airflowUri
digunakan oleh Akun Google. - Alamat URL
airflowByoidUri
digunakan oleh identitas eksternal jika Anda mengonfigurasi Federasi Identitas Tenaga Kerja di project Anda.
config:
airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com
Memulai ulang server web
Saat men-debug atau memecahkan masalah lingkungan Cloud Composer, ada beberapa masalah
dapat diselesaikan dengan memulai ulang server web Airflow. Anda dapat memulai ulang web
server menggunakan restartWebServer API
atau perintah gcloud restart-web-server
:
gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION
Mengonfigurasi akses jaringan server web
Parameter akses server web Airflow tidak bergantung pada jenis lingkungan fleksibel App Engine. Sebagai gantinya, Anda mengonfigurasi akses server web secara terpisah. Sebagai misalnya, lingkungan IP Pribadi tetap dapat memiliki UI Airflow dari internet.
Rentang IP yang diizinkan tidak dapat dikonfigurasi menggunakan IP pribadi untuk alamat internal dan eksternal.
Konsol
Di Konsol Google Cloud, buka halaman Environments.
Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.
Buka tab Konfigurasi lingkungan.
Di bagian Konfigurasi jaringan, cari Item Kontrol akses server web dan klik Edit.
Pada dialog Web server network access control:
Untuk memberikan akses ke server web Airflow dari semua alamat IP, pilih Izinkan akses dari semua alamat IP.
Untuk membatasi akses hanya ke rentang IP tertentu, pilih Izinkan akses hanya dari alamat IP tertentu. Dalam rentang IP , tentukan rentang IP dalam notasi CIDR. Di beberapa kolom Description, tentukan deskripsi opsional untuk {i>range<i}. Jika Anda ingin menentukan lebih dari satu rentang, klik Tambahkan IP rentang.
Untuk melarang akses bagi semua alamat IP, pilih Izinkan akses hanya dari alamat IP tertentu dan klik Hapus item di samping yang kosong entri rentang.
gcloud
Saat Anda memperbarui lingkungan, argumen berikut akan mengontrol server web parameter akses:
--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 IP sumber tertentu rentang. Untuk menentukan beberapa rentang IP, gunakan argumen ini beberapa kali.--web-server-deny-all
melarang akses untuk semua alamat IP.
gcloud composer environments update ENVIRONMENT_NAME \
--location LOCATION \
--web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION
Ganti kode berikut:
ENVIRONMENT_NAME
: nama lingkungan Anda.LOCATION
: wilayah tempat lingkungan berada.WS_IP_RANGE
: rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTION
: deskripsi rentang IP.
Contoh:
gcloud composer environments update example-environment \
--location us-central1 \
--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
Buat permintaan API [
environments.patch
][api-patch].Dalam permintaan ini:
Di parameter
updateMask
, tentukan Maskconfig.webServerNetworkAccessControl
.Dalam isi permintaan, tentukan bagaimana log tugas Airflow harus disimpan:
Untuk memberikan akses ke Airflow dari semua alamat IP, tentukan elemen
config
kosong (webServerNetworkAccessControl
elemen tidak boleh ada).Untuk membatasi akses hanya ke rentang IP tertentu, tentukan satu atau beberapa rentang dalam
allowedIpRanges
.Untuk melarang akses bagi semua alamat IP, tentukan alamat IP kosong Elemen
webServerNetworkAccessControl
. Tujuan ElemenwebServerNetworkAccessControl
harus ada, tetapi tidak boleh berisi elemenallowedIpRanges
.
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "WS_IP_RANGE",
"description": "WS_RANGE_DESCRIPTION"
}
]
}
}
}
Ganti kode berikut:
WS_IP_RANGE
: rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.WS_RANGE_DESCRIPTION
: deskripsi rentang IP.
Contoh:
// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl
{
"config": {
"webServerNetworkAccessControl": {
"allowedIpRanges": [
{
"value": "192.0.2.0/24",
"description": "office net 1"
},
{
"value": "192.0.4.0/24",
"description": "office net 3"
}
]
}
}
}
Terraform
Di blok allowed_ip_range
, di web_server_network_access_control
menentukan 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"
}
}
}