Memecahkan masalah server web Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

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

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, Anda tidak dapat mengakses UI Airflow. Biasanya, kode error yang ditampilkan dalam situasi ini adalah 403.

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

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

  1. Di daftar lingkungan, klik nama lingkungan Anda. Halaman Environment details akan terbuka.
  2. Buka tab Konfigurasi lingkungan.
  3. Periksa apakah item Kontrol akses server web disetel ke Semua alamat IP memiliki akses (default).
  4. Jika nilai yang berbeda dengan Semua alamat IP memiliki akses (default) dikonfigurasi, kontrol akses jaringan akan diaktifkan dan visibilitas UI Airflow akan dibatasi pada rentang alamat IPv4 dan IPv6 yang disediakan. Dalam hal ini, masalahnya mungkin terkait dengan kontrol akses jaringan server web.

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

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

  2. Buka tab Konfigurasi lingkungan.

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

  4. Pada dialog Web server network access control, pilih Allow access from all IP addresses.

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

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

    • Jika Anda mengalami masalah pada tahap ini, artinya masalah tersebut mungkin terkait dengan konfigurasi izin IAM Anda. Untuk mengetahui informasi selengkapnya tentang izin IAM untuk Cloud Composer, lihat Kontrol akses.

  6. Pada dialog Kontrol akses jaringan server web, pilih Izinkan akses hanya dari alamat IP tertentu.

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

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

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

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

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

    • Jika Anda mengalami masalah pada tahap ini, artinya 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 dapat menggunakan layanan pihak ketiga yang menyediakan alamat IP eksternal saat Anda mengunjungi halamannya. Anda dapat menelusuri layanan tersebut dengan kueri penelusuran "apa alamat IP saya").

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 defaultnya adalah non-sensitive-only. Tetapkan ke False untuk menyembunyikan semua parameter konfigurasi.

DAG membuat server web Airflow error atau menyebabkannya menampilkan error '502 gateway timeout'

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

Komputasi beban berat

Bagian ini hanya berlaku untuk Cloud Composer 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 berapa lama Airflow menghabiskan waktu untuk memuat modul Python di folder /dags.

Izin salah

Bagian ini hanya berlaku untuk Cloud Composer 1.

Server web tidak berjalan dengan akun layanan yang sama dengan pekerja dan penjadwal. Dengan demikian, pekerja dan penjadwal mungkin dapat mengakses resource yang dikelola pengguna yang tidak dapat diakses server web.

Sebaiknya hindari mengakses resource non-publik selama pemrosesan 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 Cloud Composer 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 secara 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 dan sebagai solusi jika server web tidak tersedia.

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

Langkah berikutnya