Memecahkan masalah server web Airflow

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

Halaman ini menyediakan langkah-langkah dan informasi pemecahan masalah untuk masalah umum server web Airflow.

Server web Airflow adalah komponen Airflow yang menyediakan antarmuka pengguna untuk mengelola DAG dan tugas Airflow. Halaman ini menjelaskan langkah-langkah pemecahan masalah untuk berbagai masalah terkait akses ke server web Airflow di lingkungan Anda atau untuk peringatan terkait server web yang terlihat di log Airflow.

Tidak dapat mengakses UI Airflow saat kontrol akses jaringan diaktifkan

Gejala: Setelah kontrol akses server web dikonfigurasi, tidak mungkin untuk mengakses UI Airflow. Biasanya, kode error yang ditampilkan dalam situasi ini adalah 403.

Informasi tentang masalah: Managed Airflow mendukung kontrol akses jaringan server web, yang memungkinkan Anda menentukan rentang IP yang diizinkan untuk terhubung ke server web.

Masalah terkait akses ke UI Airflow biasanya menghasilkan error 403. Untuk memeriksa apakah error terkait dengan kontrol akses jaringan server web, lakukan hal berikut:

  1. Dalam daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
  2. Buka tab Environment configuration.
  3. Periksa apakah item kontrol akses server web ditetapkan ke Semua alamat IP memiliki akses (default).
  4. Jika nilai yang berbeda dari All IP addresses have access (default) dikonfigurasi, kontrol akses jaringan akan diaktifkan dan visibilitas UI Airflow akan dibatasi ke rentang alamat IPv4 dan IPv6 yang diberikan. Dalam hal ini, masalahnya mungkin terkait dengan kontrol akses jaringan server web.

Pada umumnya, penyebab masalah ini adalah ketidakcocokan antara IP yang dimaksud yang Anda tentukan dan IP yang sebenarnya di-resolve untuk terhubung ke UI Airflow. Untuk memecahkan masalah ini, lakukan hal berikut:

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

  2. Buka tab Environment configuration.

  3. Temukan item kontrol akses server web , lalu klik Edit.

  4. Dalam dialog kontrol akses jaringan server web, pilih Izinkan akses dari semua alamat IP.

  5. Akses UI Airflow beberapa kali dan pastikan UI berfungsi tanpa masalah:

    • Jika Anda tidak mengalami masalah, lanjutkan ke langkah berikutnya.

    • Jika Anda mengalami masalah pada tahap ini, berarti masalahnya mungkin terkait dengan konfigurasi izin IAM Anda. Untuk mengetahui informasi selengkapnya tentang izin IAM untuk Managed Airflow, lihat Kontrol akses.

  6. Dalam dialog kontrol akses jaringan server web, pilih Allow access only from specific IP addresses.

  7. Tambahkan rentang IP 0.0.0.0/0, lalu akses UI Airflow beberapa kali dan pastikan UI berfungsi tanpa masalah:

    • Jika Anda tidak mengalami masalah, berarti IP yang Anda gunakan untuk terhubung adalah alamat IPv4.

    • Jika Anda mengalami masalah pada tahap ini, berarti IP yang Anda gunakan untuk terhubung adalah alamat IPv6.

  8. Hapus rentang IP 0.0.0.0/0, lalu tambahkan rentang IP ::/0.

    • Jika Anda tidak mengalami masalah, berarti IP yang Anda gunakan untuk terhubung adalah alamat IPv6.

    • Jika Anda mengalami masalah pada tahap ini, berarti IP yang Anda gunakan untuk terhubung adalah alamat IPv4.

  9. Sekarang Anda telah menentukan apakah alamat yang di-resolve adalah IPv4 atau IPv6.

  10. Bergantung pada jenis alamat, persempit rentang ::/0 atau 0.0.0.0/0 ke rentang yang lebih spesifik, untuk memverifikasi rentang terluas saat akses berhenti berfungsi:

    • Anda dapat memulai dengan subnet mask yang luas (seperti 192.0.2.0/8) yang mencakup alamat yang Anda anggap sebagai alamat IP Anda.

    • Untuk menentukan alamat IP Anda, Anda dapat menggunakan layanan pihak ketiga yang memberikan alamat IP eksternal Anda saat Anda mengunjungi halaman layanannya. Anda dapat menelusuri layanan tersebut dengan kueri penelusuran "what is my IP address").

Nilai konfigurasi tidak ditampilkan di halaman konfigurasi

Beberapa parameter konfigurasi Airflow disembunyikan di halaman konfigurasi untuk mencegah akses ke informasi yang berpotensi sensitif. Misalnya, kredensial untuk mengakses database Airflow tidak ditampilkan.

Untuk menampilkan kolom tersembunyi, ganti opsi konfigurasi Airflow berikut. Sebaiknya kembalikan perubahan setelah Anda mendapatkan nilai yang diperlukan.

Bagian Kunci Nilai Catatan
webserver expose_config True Nilai default-nya adalah non-sensitive-only. Tetapkan ke False untuk menyembunyikan semua parameter konfigurasi.

DAG menyebabkan server web Airflow mengalami error atau menampilkan error '502 gateway timeout'

Kegagalan server web dapat terjadi karena beberapa alasan yang berbeda. Periksa log airflow-webserver di Cloud Logging untuk menentukan penyebab 502 gateway timeout error.

Komputasi beban berat

Bagian ini hanya berlaku untuk Managed Airflow (Legacy Gen 1).

Tidak seperti node pekerja dan penjadwal, yang jenis mesinnya dapat disesuaikan agar memiliki kapasitas CPU dan memori yang lebih besar, server web menggunakan jenis mesin tetap, yang dapat menyebabkan kegagalan penguraian DAG jika komputasi waktu penguraian terlalu berat.

Perhatikan bahwa server web memiliki 2 vCPU dan memori 2 GB. Nilai default untuk core-dagbag_import_timeout adalah 30 detik. Nilai waktu tunggu ini menentukan batas atas waktu yang digunakan Airflow untuk memuat modul Python di folder /dags.

Izin salah

Bagian ini hanya berlaku untuk Managed Airflow (Legacy Gen 1).

Server web tidak berjalan di bawah akun layanan yang sama dengan pekerja dan penjadwal. Oleh karena itu, pekerja dan penjadwal mungkin dapat mengakses resource yang dikelola pengguna yang tidak dapat diakses oleh server web.

Sebaiknya hindari mengakses resource non-publik selama penguraian DAG. Terkadang, hal ini tidak dapat dihindari, dan Anda harus memberikan izin ke akun layanan server web. Nama akun layanan berasal dari domain server web Anda. Misalnya, jika domainnya adalah example-tp.appspot.com, akun layanannya adalah example-tp@appspot.gserviceaccount.com.

Error DAG

Bagian ini hanya berlaku untuk Managed Airflow (Legacy Gen 1).

Server web berjalan di App Engine dan terpisah dari cluster GKE lingkungan Anda. Server web mengurai file definisi DAG, dan 502 gateway timeout dapat terjadi jika ada error dalam DAG. Airflow berfungsi normal tanpa server web yang berfungsi jika DAG yang bermasalah tidak merusak proses apa pun yang berjalan di GKE. Dalam hal ini, Anda dapat menggunakan gcloud composer environments run untuk mengambil detail dari lingkungan Anda dan sebagai solusi sementara jika server web tidak tersedia.

Dalam kasus lain, Anda dapat menjalankan penguraian DAG di GKE dan mencari DAG yang menampilkan pengecualian Python fatal atau yang waktu tunggunya habis (default 30 detik). Untuk memecahkan masalah, hubungkan ke shell jarak jauh di container pekerja Airflow dan uji error sintaksis. Untuk mengetahui informasi selengkapnya, lihat Menguji DAG.

Langkah berikutnya