Mengakses antarmuka web Airflow

Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)

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

Tentang server web Airflow

Setiap lingkungan Managed Airflow memiliki server web yang menjalankan Airflow UI. Server web adalah bagian dari arsitektur lingkungan Managed Airflow.

Sebelum memulai

  • Anda harus memiliki peran yang dapat melihat lingkungan Managed Airflow. Untuk mengetahui informasi selengkapnya, lihat Kontrol akses.

  • Selama pembuatan lingkungan, Managed Airflow mengonfigurasi URL untuk server web yang menjalankan Airflow UI. URL tidak dapat disesuaikan.

  • Managed Airflow (Gen 3) mendukung fitur Kontrol Akses UI Airflow (Kontrol Akses Berbasis Peran Airflow) untuk Airflow UI.

  • Jika opsi Kontrol API > Aplikasi pihak ketiga yang tidak dikonfigurasi > Jangan izinkan pengguna mengakses aplikasi pihak ketiga mana pun diaktifkan di Google Workspace dan aplikasi Apache Airflow di Managed Airflow tidak diizinkan secara eksplisit, pengguna tidak dapat mengakses Airflow UI kecuali jika mereka mengizinkan aplikasi tersebut secara eksplisit. Untuk mengizinkan akses, lakukan langkah-langkah yang disediakan di Mengizinkan akses ke Airflow UI di Google Workspace.

  • Jika binding Akses Kontekstual Chrome Enterprise Premium digunakan dengan tingkat akses yang mengandalkan atribut perangkat, dan aplikasi Apache Airflow di Managed Airflow tidak dikecualikan, Airflow UI tidak dapat diakses karena loop login. Untuk mengizinkan akses, lakukan langkah-langkah yang disediakan di Mengizinkan akses ke Airflow UI di binding Akses Kontekstual.

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

  • Managed Airflow tidak mendukung penggunaan identitas pihak ketiga dalam aturan ingress dan egress untuk mengizinkan operasi UI Apache Airflow. Namun, Anda dapat menggunakan jenis identitas ANY_IDENTITY dalam aturan ingress dan egress untuk mengizinkan akses ke semua identitas, termasuk identitas pihak ketiga. Untuk mengetahui informasi selengkapnya tentang jenis identitas ANY_IDENTITY, lihat Aturan ingress dan egress.

Mengakses Airflow UI

Di Managed Airflow (Gen 3), server web Airflow berjalan di project tenant lingkungan Anda. Server web di-deploy ke domain composer.googleusercontent.com dan menyediakan akses ke Airflow UI.

Managed Airflow (Gen 3) menyediakan akses ke antarmuka berdasarkan identitas pengguna dan binding kebijakan IAM yang ditentukan untuk pengguna.

Mengakses Airflow UI dari konsol Google Cloud

Untuk mengakses Airflow UI dari konsol: Google Cloud

  1. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

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

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

Mendapatkan URL Airflow UI dengan Google Cloud CLI

Anda dapat mengakses Airflow UI dari browser web mana pun. Untuk mendapatkan URL Airflow UI, 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 Managed Airflow, termasuk URL untuk Airflow UI. 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

Memulai ulang server web

Saat men-debug atau memecahkan masalah lingkungan Managed Airflow, 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 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 mengakses Airflow UI dari internet.

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

Konsol

  1. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

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

  3. Buka tab Environment configuration.

  4. Di bagian Network configuration , temukan item Web server access control , lalu klik Edit.

  5. Dalam dialog Web server network access control:

    • 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 Allow access only from specific IP addresses. 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 Add IP range.

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

gcloud

Saat Anda memperbarui 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.

  • --update-web-server-allow-ip membatasi akses hanya 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 \
    --update-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 Airflow UI.
  • WS_RANGE_DESCRIPTION: deskripsi rentang IP.

Contoh:

gcloud composer environments update example-environment \
    --location us-central1 \
    --update-web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
    --update-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. Di parameter updateMask, tentukan mask config.webServerNetworkAccessControl.

    2. Di 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 untuk 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 Airflow UI.
  • 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 Airflow UI.
  • 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 berikutnya