Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Legacy Gen 1)
Panduan ini menjelaskan cara membuat pipeline CI/CD untuk menguji, menyinkronkan, dan men-deploy DAG ke lingkungan Managed Airflow Anda dari repositori GitHub.
Jika Anda hanya ingin menyinkronkan data dari layanan lain, lihat Mentransfer data dari layanan lain.
Ringkasan pipeline CI/CD
Pipeline CI/CD untuk menguji, menyinkronkan, dan men-deploy DAG memiliki langkah-langkah berikut:
Anda membuat perubahan pada DAG dan mengirimkan perubahan tersebut ke cabang pengembangan di repositori Anda.
Anda membuka permintaan pull terhadap cabang utama repositori Anda.
Cloud Build menjalankan pengujian unit untuk memeriksa apakah DAG Anda valid.
Permintaan pull Anda disetujui dan digabungkan ke cabang utama repositori Anda.
Cloud Build menyinkronkan lingkungan Managed Airflow pengembangan Anda dengan perubahan baru ini.
Anda memverifikasi bahwa DAG berfungsi seperti yang diharapkan di lingkungan pengembangan Anda.
Jika DAG Anda berfungsi seperti yang diharapkan, upload DAG ke lingkungan Managed Airflow produksi Anda.
Tujuan
- Menjalankan pemeriksaan presubmit otomatis menggunakan Cloud Build. Pemeriksaan ini menjalankan pengujian unit untuk DAG.
- Menyinkronkan DAG di lingkungan Managed Service untuk Apache Airflow pengembangan Anda dengan DAG di repositori GitHub Anda.
Sebelum memulai
Panduan ini mengasumsikan bahwa Anda menggunakan dua lingkungan Managed Airflow yang identik: lingkungan pengembangan dan lingkungan produksi.
Untuk tujuan panduan ini, Anda hanya mengonfigurasi pipeline CI/CD untuk lingkungan pengembangan. Pastikan lingkungan yang Anda gunakan bukan lingkungan produksi.
Panduan ini mengasumsikan bahwa Anda telah menyimpan DAG dan pengujiannya di repositori GitHub.
Pipeline CI/CD contoh menunjukkan konten repositori contoh. DAG dan pengujian disimpan di direktori
dags/, dengan file persyaratan, file batasan, dan file konfigurasi Cloud Build yang disimpan di tingkat atas. Utilitas sinkronisasi DAG dan persyaratannya terletak di direktoriutils.
Membuat tugas pemeriksaan presubmit dan pengujian unit
Tugas Cloud Build pertama menjalankan pemeriksaan presubmit, yang mengeksekusi pengujian unit untuk DAG Anda.
Menambahkan pengujian unit
Jika belum, buat pengujian unit untuk
DAG Anda. Simpan pengujian ini bersama DAG di repositori Anda, masing-masing dengan akhiran _test. Misalnya, file pengujian untuk DAG di example_dag.py adalah example_dag_test.py. Ini adalah pengujian yang berjalan sebagai pemeriksaan presubmit di repositori Anda.
Membuat konfigurasi YAML Cloud Build untuk pemeriksaan presubmit
Di repositori Anda, buat file YAML bernama test-dags.cloudbuild.yaml yang mengonfigurasi tugas Cloud Build Anda untuk pemeriksaan presubmit. Di dalamnya, ada tiga langkah:
- Menginstal dependensi yang diperlukan oleh DAG Anda.
- Menginstal dependensi yang diperlukan oleh pengujian unit Anda.
- Mengeksekusi pengujian DAG.
Membuat pemicu Cloud Build untuk pemeriksaan presubmit
Ikuti panduan Membangun repositori dari GitHub untuk membuat pemicu berbasis aplikasi GitHub dengan konfigurasi berikut:
Nama:
test-dagsPeristiwa: Permintaan Pull
Sumber - Repositori: pilih repositori Anda
Sumber - Cabang dasar:
^main$(ubahmainke nama cabang dasar repositori Anda, jika diperlukan)Sumber - Kontrol Komentar: tidak diperlukan
Konfigurasi Build - File konfigurasi Cloud Build:
/test-dags.cloudbuild.yaml(jalur ke file build Anda)
Membuat tugas sinkronisasi DAG dan menambahkan skrip utilitas DAG
Selanjutnya, konfigurasi tugas Cloud Build yang menjalankan skrip utilitas DAG. Skrip utilitas dalam tugas ini menyinkronkan DAG Anda dengan lingkungan Managed Airflow Anda setelah digabungkan ke cabang utama di repositori Anda.
Menambahkan skrip utilitas DAG
Tambahkan skrip utilitas DAG ke repositori Anda. Skrip utilitas ini menyalin semua file DAG di direktori dags/ repositori Anda ke direktori sementara, dengan mengabaikan semua file Python non-DAG. Kemudian, skrip menggunakan library klien Cloud Storage untuk mengupload semua file dari direktori sementara tersebut ke direktori dags/ di bucket lingkungan Managed Airflow Anda.
Membuat konfigurasi YAML Cloud Build untuk menyinkronkan DAG
Di repositori Anda, buat file YAML bernama add-dags-to-composer.cloudbuild.yaml yang mengonfigurasi tugas Cloud Build Anda untuk menyinkronkan DAG. Di dalamnya, ada dua langkah:
Menginstal dependensi yang diperlukan oleh skrip utilitas DAG.
Menjalankan skrip utilitas untuk menyinkronkan DAG di repositori Anda dengan lingkungan Managed Airflow Anda.
Membuat pemicu Cloud Build
Ikuti panduan Membangun repositori dari GitHub untuk membuat pemicu berbasis aplikasi GitHub dengan konfigurasi berikut:
Nama:
add-dags-to-composerPeristiwa: Kirim ke cabang
Sumber - Repositori: pilih repositori Anda
Sumber - Cabang dasar:
^main$(ubahmainke nama cabang dasar repositori Anda, jika diperlukan)Sumber - Filter file yang disertakan (glob):
dags/**Konfigurasi Build - File konfigurasi Cloud Build:
/add-dags-to-composer.cloudbuild.yaml(jalur ke file build Anda)
Di Konfigurasi lanjutan, tambahkan dua variabel substitusi:
_DAGS_DIRECTORY- direktori tempat DAG berada di repositori Anda. Jika Anda menggunakan repositori contoh dari panduan ini, direktori tersebut adalahdags/._DAGS_BUCKET- bucket Cloud Storage yang berisi direktoridags/di lingkungan Managed Airflow pengembangan Anda. Hapus awalangs://. Contoh:us-central1-example-env-1234ab56-bucket.
Menguji pipeline CI/CD
Di bagian ini, ikuti alur pengembangan DAG yang menggunakan pemicu Cloud Build yang baru Anda buat.
Menjalankan tugas presubmit
Buat permintaan pull ke cabang utama Anda untuk menguji build Anda. Temukan pemeriksaan presubmit Anda di halaman. Klik Details , lalu pilih View more details on Google Cloud Build untuk melihat log build Anda di Google Cloud konsol.
Jika pemeriksaan presubmit Anda gagal, lihat Mengatasi kegagalan build.
Memvalidasi bahwa DAG Anda berfungsi di lingkungan pengembangan Anda
Setelah permintaan pull Anda disetujui, gabungkan ke cabang utama Anda. Gunakan
Google Cloud konsol untuk
melihat hasil build Anda. Jika Anda memiliki banyak pemicu Cloud Build, Anda dapat memfilter build berdasarkan nama pemicu add-dags-to-composer.
Setelah tugas sinkronisasi Cloud Build berhasil, DAG yang disinkronkan akan muncul di lingkungan Managed Airflow pengembangan Anda. Di sana, Anda dapat memvalidasi bahwa fungsi DAG berfungsi seperti yang diharapkan.
Menambahkan DAG ke lingkungan produksi Anda
Setelah DAG berfungsi seperti yang diharapkan, tambahkan secara manual ke lingkungan produksi Anda. Untuk melakukannya, upload file DAG
ke direktori dags/ di lingkungan Managed Airflow produksi Anda
bucket.
Jika tugas sinkronisasi DAG Anda gagal atau jika DAG Anda tidak berfungsi seperti yang diharapkan di lingkungan Managed Airflow pengembangan Anda, lihat Mengatasi kegagalan build.
Mengatasi kegagalan build
Bagian ini menjelaskan cara mengatasi skenario kegagalan build umum.
Bagaimana jika pemeriksaan presubmit saya gagal?
Dari permintaan pull Anda, klik Details , lalu pilih View more details on Google Cloud Build untuk melihat log build Anda di Google Cloud konsol. Gunakan log ini untuk membantu Anda men-debug masalah pada DAG Anda. Setelah Anda mengatasi masalah, lakukan commit perbaikan dan kirim ke cabang Anda. Pemeriksaan presubmit akan berjalan lagi, dan Anda dapat terus melakukan iterasi menggunakan log sebagai alat proses debug.
Bagaimana jika tugas sinkronisasi DAG saya gagal?
Gunakan Google Cloud konsol untuk
melihat hasil build Anda. Jika Anda memiliki banyak pemicu Cloud Build, Anda dapat memfilter build berdasarkan nama pemicu add-dags-to-composer. Periksa log tugas build dan atasi error. Jika Anda memerlukan bantuan tambahan untuk mengatasi error, gunakan
saluran dukungan.
Bagaimana jika DAG saya tidak berfungsi dengan benar di lingkungan Managed Airflow saya?
Jika DAG Anda tidak berfungsi seperti yang diharapkan di lingkungan Managed Airflow pengembangan Anda, jangan promosikan DAG secara manual ke lingkungan Managed Airflow produksi Anda. Sebagai gantinya, lakukan salah satu hal berikut:
- Kembalikan permintaan pull dengan perubahan yang merusak DAG Anda untuk memulihkannya ke status segera sebelum perubahan Anda (tindakan ini juga mengembalikan semua file lain dalam permintaan pull tersebut).
- Buat permintaan pull baru untuk mengembalikan perubahan secara manual ke DAG yang rusak.
- Buat permintaan pull baru untuk memperbaiki error di DAG Anda.
Mengikuti salah satu langkah ini akan memicu pemeriksaan presubmit baru dan setelah penggabungan, tugas sinkronisasi DAG.