Mengakses antarmuka pengguna web Apache Airflow

Cloud Composer 1 | Cloud Composer 2

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 DAG sebelumnya yang dijalankan.

Server web Airflow

Setiap lingkungan Cloud Composer memiliki server web yang menjalankan antarmuka web Airflow. Server web adalah bagian dari arsitektur lingkungan Cloud Composer.

Server web mengurai file definisi DAG dalam folder dags/ dan harus dapat mengakses data serta resource DAG untuk memuat DAG dan melayani permintaan HTTP.

Server web memperbarui DAG setiap 60 detik, yang merupakan worker_refresh_interval default di Cloud Composer. Error server web dapat terjadi jika server web tidak dapat mengurai semua DAG dalam interval refresh.

Melebihi 60 detik untuk memuat DAG dapat terjadi jika ada file DAG dalam jumlah besar atau beban kerja yang berat untuk memuat file DAG. Untuk memastikan bahwa server web tetap dapat diakses terlepas dari waktu pemuatan DAG, Anda dapat mengonfigurasi pemuatan DAG asinkron untuk mengurai dan memuat DAG di latar belakang pada interval yang telah dikonfigurasi sebelumnya (tersedia di composer-1.7.1-airflow-1.10.2 dan versi yang lebih baru). Konfigurasi ini juga dapat mengurangi waktu refresh DAG.

Selain melebihi interval refresh pekerja, server web dapat menangani dengan baik kegagalan pemuatan DAG dalam sebagian besar kasus. DAG yang menyebabkan server web error atau keluar dapat menyebabkan error ditampilkan di browser. Untuk informasinya, lihat Memecahkan masalah DAG.

Jika Anda terus mengalami masalah server web karena penguraian DAG, sebaiknya gunakan pemuatan DAG asinkron.

Sebelum memulai

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

  • Selama pembuatan lingkungan, Cloud Composer mengonfigurasi URL untuk server web yang menjalankan antarmuka web Airflow. URL tidak dapat disesuaikan.

  • Fitur Airflow UI Access Control (Airflow Role-Based Access Control) untuk antarmuka web Airflow didukung untuk lingkungan Cloud Composer yang menjalankan Composer versi 1.13.4 atau yang lebih baru, Airflow versi 1.10.10 atau yang lebih baru, dan Python 3.

Mengakses antarmuka web Airflow

Layanan server web Airflow di-deploy ke domain appspot.com dan menyediakan akses ke antarmuka web Airflow. Cloud Composer 1 memberikan akses ke antarmuka berdasarkan identitas pengguna dan binding kebijakan IAM yang ditentukan untuk pengguna. Cloud Composer 1 menggunakan Identity-Aware Proxy untuk tujuan ini.

Setelah membuat lingkungan Cloud Composer baru, perlu waktu hingga 25 menit agar antarmuka web selesai menghosting dan dapat diakses.

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 server web Airflow, ikuti link Airflow untuk lingkungan Anda.

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

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.
  • Rentang IP yang diizinkan tidak dapat dikonfigurasi menggunakan alamat IP pribadi.

Mengambil URL antarmuka web melalui alat command line gcloud

Anda dapat mengakses antarmuka web Airflow dari browser web apa pun. Untuk mendapatkan URL antarmuka web, masukkan perintah gcloud berikut:

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

Ganti kode berikut:

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

Perintah gcloud menampilkan properti lingkungan Cloud Composer, termasuk URL untuk antarmuka web. URL akan dicantumkan sebagai airflowUri.

config:
  airflowUri: https://example-tp.appspot.com

Mengonfigurasi pemuatan DAG asinkron

Saat pemuatan DAG asinkron diaktifkan, server web Airflow akan membuat proses baru. Proses ini memuat DAG di latar belakang, mengirim DAG yang baru dimuat pada interval yang ditentukan oleh opsi dagbag_sync_interval, lalu tidur.

Proses ini aktif secara berkala untuk memuat ulang DAG, intervalnya ditentukan oleh opsi collect_dags_interval.

Untuk mengaktifkan pemuatan DAG asinkron:

  1. Nonaktifkan serialisasi DAG. Pemuatan DAG asinkron tidak dapat digunakan dengan serialisasi DAG. Penggunaan opsi konfigurasi Airflow async_dagbag_loader dan store_serialized_dags akan menghasilkan error HTTP 503 dan merusak lingkungan Anda.

  2. Ganti opsi konfigurasi Airflow berikut:

    Bagian Kunci Nilai Notes
    webserver async_dagbag_loader True Nilai defaultnya adalah False.
    webserver collect_dags_interval 30 Nilai defaultnya adalah 30. Gunakan nilai yang lebih kecil untuk refresh yang lebih cepat.
    webserver dagbag_sync_interval 10 Nilai defaultnya adalah 10.
    webserver worker_refresh_interval 3600 Nilai defaultnya adalah 60. Dengan pemuatan DAG asinkron, Anda dapat menggunakan interval refresh yang lebih lama.

Memulai ulang server web

Saat melakukan proses debug atau memecahkan masalah lingkungan Cloud Composer, beberapa masalah mungkin 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