Mengakses antarmuka web Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Apache Airflow menyertakan antarmuka pengguna web yang disebut UI Airflow, yang dapat Anda gunakan untuk mengelola DAG Airflow, melihat log operasi DAG, memantau Airflow, dan melakukan tindakan administratif.

Tentang server web Airflow

Setiap lingkungan Cloud Composer memiliki server web yang menjalankan UI 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 UI Airflow. URL tidak dapat disesuaikan.

  • Cloud Composer 3 mendukung fitur Kontrol Akses UI Airflow (Kontrol Akses Berbasis Peran Airflow) untuk UI 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 diberikan di Mengizinkan akses ke UI Airflow di Google Workspace.

  • Jika Binding Akses Kontekstual Chrome Enterprise Premium digunakan dengan tingkat akses yang mengandalkan atribut perangkat, dan Apache Airflow di aplikasi Cloud Composer tidak dikecualikan, Anda tidak dapat mengakses UI Airflow karena loop login. Untuk mengizinkan akses, lakukan langkah-langkah yang diberikan di Mengizinkan akses ke UI Airflow dalam binding Akses Kontekstual.

  • Jika aturan masuk dikonfigurasi dalam perimeter Kontrol Layanan VPC yang melindungi project, dan aturan masuk yang mengizinkan akses ke layanan Cloud Composer menggunakan jenis identitas ANY_SERVICE_ACCOUNT atau ANY_USER_ACCOUNT, pengguna tidak dapat mengakses UI Airflow, yang berakhir dalam loop login. Untuk mengetahui informasi selengkapnya tentang cara mengatasi skenario ini, lihat Mengizinkan akses ke UI Airflow dalam aturan masuk Kontrol Layanan VPC.

Mengakses UI Airflow

Di Cloud Composer 3, server web Airflow berjalan di project tenant lingkungan Anda. Server web di-deploy ke domain composer.googleusercontent.com dan memberikan akses ke UI Airflow.

Cloud Composer 3 memberikan akses ke antarmuka berdasarkan identitas pengguna dan binding kebijakan IAM yang ditentukan untuk pengguna.

Mengakses UI Airflow dari konsol Google Cloud

Untuk mengakses UI Airflow dari konsol Google Cloud:

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Di kolom Airflow webserver, ikuti link Airflow untuk lingkungan Anda.

  3. Login dengan Akun Google yang memiliki izin yang sesuai.

Mendapatkan URL UI Airflow dengan Google Cloud CLI

Anda dapat mengakses UI Airflow dari browser web apa pun. Untuk mendapatkan URL UI Airflow, jalankan perintah berikut di Google Cloud CLI:

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: region tempat lingkungan berada.

Perintah Google Cloud CLI menampilkan properti lingkungan Cloud Composer, termasuk URL untuk UI Airflow. URL 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

Mulai ulang server web

Saat men-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 restart-web-server di Google Cloud CLI:

gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
  --location=LOCATION

Ganti kode berikut:

  • ENVIRONMENT_NAME: nama lingkungan Anda.
  • LOCATION: region tempat lingkungan berada.

Mengonfigurasi akses jaringan server web

Parameter akses server web Airflow tidak bergantung pada konfigurasi jaringan 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.

Rentang IP yang diizinkan tidak dapat dikonfigurasi menjadi alamat IP pribadi.

Konsol

  1. Di konsol Google Cloud, buka halaman Environments.

    Buka Lingkungan

  2. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.

  3. Buka tab Konfigurasi lingkungan.

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

  5. Pada dialog Kontrol akses jaringan server web:

    • 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 Rentang IP, 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 untuk semua alamat IP, pilih Izinkan akses hanya dari alamat IP tertentu, lalu klik Hapus item di samping entri rentang kosong.

gcloud

Saat Anda mengupdate lingkungan, argumen berikut akan 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: region 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="example range" \
    --web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"

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 log tugas Airflow harus disimpan:

      • 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 ke 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": "example range"
        },
        {
          "value": "192.0.4.0/24",
          "description": "example range 2"
        }
      ]
    }
  }
}

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 kode berikut:

  • WS_IP_RANGE: rentang IP, dalam notasi CIDR, yang dapat mengakses UI Airflow.
  • WS_RANGE_DESCRIPTION: 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 = "example range"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "example range 2"
      }

    }
}

Langkah selanjutnya