Akses antarmuka web Airflow

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Apache Airflow mencakup antarmuka pengguna web (UI) 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 tidak dapat disesuaikan.

  • Cloud Composer 2 mendukung fitur Airflow UI Access Control (Airflow Role-Based Access Control) untuk antarmuka web Airflow.

  • Jika opsi Kontrol API > Aplikasi pihak ketiga yang tidak dikonfigurasi > Jangan izinkan pengguna mengakses aplikasi pihak ketiga diaktifkan di Google Workspace dan Apache Airflow di aplikasi Cloud Composer tidak diizinkan secara eksplisit, pengguna tidak dapat mengakses UI Airflow kecuali jika mereka 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 berjalan sebagai beban kerja di cluster lingkungan Anda. Server web 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 Composer2 menggunakan mekanisme berbeda yang tidak bergantung pada Identity-Aware Proxy.

Mengakses antarmuka web dari Konsol Google Cloud

Untuk mengakses antarmuka web Airflow dari Konsol Google Cloud:

  1. Di Konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Di kolom webserver 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 rentang IP eksternal IPv4 atau IPv6 tertentu.
  • Anda tidak dapat mengonfigurasi rentang IP yang diizinkan menggunakan alamat IP pribadi.

Mengambil URL antarmuka web melalui alat command line gcloud

Anda dapat mengakses antarmuka web Airflow dari browser web apa pun. Guna 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 lingkungan Cloud Composer, termasuk URL untuk antarmuka web. URL tersebut tercantum sebagai airflowUri dan airflowByoidUri:

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 melakukan proses debug atau memecahkan masalah lingkungan Cloud Composer, beberapa masalah dapat diselesaikan dengan memulai ulang server web Airflow. Anda dapat memulai ulang server web 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 Anda. Sebagai gantinya, Anda 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

  1. Di Konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Pada daftar lingkungan, klik nama lingkungan Anda. Halaman Detail lingkungan akan terbuka.

  3. Buka tab Konfigurasi lingkungan.

  4. Di bagian Konfigurasi jaringan, temukan item Kontrol akses server web, lalu klik Edit.

  5. 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. Di kolom IP range, masukkan rentang IP dalam notasi CIDR. Di kolom Description, tentukan deskripsi opsional untuk rentang ini. Jika Anda ingin menentukan lebih dari satu rentang, klik Add IP range.

    • Untuk melarang akses bagi semua alamat IP, pilih Allow access only from specific IP addresses, lalu klik Delete item di samping entri rentang yang kosong.

gcloud

Saat Anda mengupdate lingkungan, argumen berikut mengontrol parameter 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 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

  1. Buat permintaan API [environments.patch][api-patch].

  2. Dalam permintaan ini:

    1. Dalam parameter updateMask, tentukan mask config.webServerNetworkAccessControl.

    2. Dalam isi permintaan, tentukan cara menyimpan log tugas Airflow:

      • Untuk memberikan akses ke Airflow dari semua alamat IP, tentukan elemen config kosong (elemen webServerNetworkAccessControl tidak boleh ada).

      • Untuk membatasi akses hanya ke rentang IP tertentu, tentukan satu atau beberapa rentang di allowedIpRanges.

      • Untuk melarang akses bagi semua alamat IP, tentukan elemen webServerNetworkAccessControl kosong. Elemen webServerNetworkAccessControl harus ada, tetapi tidak boleh berisi elemen allowedIpRanges.

{
  "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, tentukan 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 selanjutnya