Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Panduan ini menjelaskan cara membuat pipeline CI/CD untuk menguji, menyinkronkan, dan men-deploy DAG ke lingkungan Cloud Composer dari repositori GitHub Anda.
Jika Anda hanya ingin menyinkronkan data dari layanan lain, lihat Mentransfer data dari layanan lain.
Ringkasan pipeline CI/CD
Pipeline CI/CD yang menguji, menyinkronkan, dan men-deploy DAG memiliki langkah-langkah berikut:
Anda membuat perubahan pada DAG dan menerapkan 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 Cloud Composer pengembangan Anda dengan perubahan baru ini.
Anda memverifikasi bahwa DAG berperilaku seperti yang diharapkan di lingkungan pengembangan.
Jika DAG berfungsi seperti yang diharapkan, Anda dapat mengupload DAG ke lingkungan Cloud Composer produksi.
Tujuan
Sebelum memulai
Panduan ini mengasumsikan bahwa Anda menggunakan dua lingkungan Cloud Composer yang identik: lingkungan pengembangan dan lingkungan produksi.
Untuk tujuan panduan ini, Anda mengonfigurasi pipeline CI/CD hanya untuk lingkungan pengembangan. Pastikan lingkungan yang Anda gunakan bukan lingkungan produksi.
Panduan ini mengasumsikan bahwa Anda memiliki DAG dan pengujiannya yang disimpan di repositori GitHub.
Contoh pipeline CI/CD menunjukkan konten contoh repositori. DAG dan pengujian disimpan di direktori
dags/
, dengan file persyaratan, file batasan, dan file konfigurasi Cloud Build yang disimpan di tingkat teratas. Utilitas sinkronisasi DAG dan persyaratannya berada di direktoriutils
.Struktur ini dapat digunakan untuk lingkungan Airflow 1, Airflow 2, Cloud Composer 1, dan Cloud Composer 2.
Membuat tugas pemeriksaan pra-pengiriman dan pengujian unit
Tugas Cloud Build pertama menjalankan pemeriksaan pra-pengiriman, yang menjalankan pengujian unit untuk DAG Anda.
Menambahkan pengujian unit
Jika Anda belum melakukannya, tulis
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
. Pengujian ini adalah
pengujian yang berjalan sebagai pemeriksaan pra-pengiriman di repositori Anda.
Membuat konfigurasi YAML Cloud Build untuk pemeriksaan pra-pengiriman
Di repositori, buat file YAML bernama test-dags.cloudbuild.yaml
yang mengonfigurasi tugas Cloud Build untuk pemeriksaan pra-pengiriman. Di dalamnya, ada
tiga langkah:
- Instal dependensi yang diperlukan oleh DAG Anda.
- Instal dependensi yang diperlukan oleh pengujian unit Anda.
- Jalankan pengujian DAG.
Membuat pemicu Cloud Build untuk pemeriksaan pra-pengiriman
Ikuti panduan Mem-build repositori dari GitHub untuk membuat pemicu berbasis aplikasi GitHub dengan konfigurasi berikut:
Nama:
test-dags
Peristiwa: Permintaan Pull
Source - Repository: pilih repositori Anda
Sumber - Cabang dasar:
^main$
(ubahmain
menjadi nama cabang dasar repositori Anda, jika diperlukan)Sumber - Kontrol Komentar: tidak wajib
Build Configuration - File konfigurasi Cloud Build:
/test-dags.cloudbuild.yaml
(jalur ke file build Anda)
Membuat tugas sinkronisasi DAG dan menambahkan skrip utilitas DAG
Selanjutnya, konfigurasikan tugas Cloud Build yang menjalankan skrip utilitas DAG. Skrip utilitas dalam tugas ini menyinkronkan DAG dengan lingkungan Cloud Composer 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, mengabaikan semua file Python non-DAG. Skrip ini
kemudian menggunakan library klien Cloud Storage untuk mengupload semua file
dari direktori sementara tersebut ke direktori dags/
di
bucket lingkungan Cloud Composer Anda.
Membuat konfigurasi YAML Cloud Build untuk menyinkronkan DAG
Di repositori, buat file YAML bernama
add-dags-to-composer.cloudbuild.yaml
yang mengonfigurasi tugas Cloud Build
untuk menyinkronkan DAG. Di dalamnya, ada dua langkah:
Instal dependensi yang diperlukan oleh skrip utilitas DAG.
Jalankan skrip utilitas untuk menyinkronkan DAG di repositori dengan lingkungan Cloud Composer.
Membuat pemicu Cloud Build
Ikuti panduan Mem-build repositori dari GitHub untuk membuat pemicu berbasis aplikasi GitHub dengan konfigurasi berikut:
Nama:
add-dags-to-composer
Peristiwa: Kirim ke cabang
Source - Repository: pilih repositori Anda
Sumber - Cabang dasar:
^main$
(ubahmain
menjadi nama cabang dasar repositori Anda, jika diperlukan)Sumber - Filter file yang disertakan (glob):
dags/**
Build Configuration - File konfigurasi build cloud:
/add-dags-to-composer.cloudbuild.yaml
(jalur ke file build Anda)
Di konfigurasi Lanjutan, tambahkan dua variabel penggantian:
_DAGS_DIRECTORY
- direktori tempat dag berada di repositori Anda. Jika Anda menggunakan contoh repositori dari panduan ini, nilainya adalahdags/
._DAGS_BUCKET
- bucket Cloud Storage yang berisi direktoridags/
di lingkungan Cloud Composer 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 pra-pengiriman
Buat permintaan pull ke cabang utama untuk menguji build Anda. Temukan pemeriksaan pra-pengiriman di halaman. Klik Details dan pilih View more details on Google Cloud Build untuk melihat log build di konsol Google Cloud.
Jika pemeriksaan pra-pengiriman gagal, lihat Menangani kegagalan build.
Memvalidasi bahwa DAG Anda berfungsi di lingkungan Cloud Composer pengembangan
Setelah permintaan pull disetujui, gabungkan ke cabang utama Anda. Gunakan konsol Google Cloud untuk melihat hasil build Anda. Jika 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 Cloud Composer pengembangan Anda. Di sana, Anda dapat memvalidasi bahwa DAG berfungsi seperti yang diharapkan.
Menambahkan DAG ke lingkungan produksi
Setelah DAG berperforma seperti yang diharapkan, tambahkan secara manual ke lingkungan produksi
Anda. Untuk melakukannya, upload file DAG ke direktori dags/
di bucket lingkungan Cloud Composer produksi Anda.
Jika tugas sinkronisasi DAG gagal atau jika DAG tidak berperilaku seperti yang diharapkan di lingkungan Cloud Composer pengembangan, lihat Menangani kegagalan build.
Mengatasi kegagalan build
Bagian ini menjelaskan cara mengatasi skenario kegagalan build yang umum.
Bagaimana jika pemeriksaan pra-pengiriman saya gagal?
Dari permintaan pull, klik Details dan pilih View more details on Google Cloud Build untuk melihat log build di konsol Google Cloud. Gunakan log ini untuk membantu Anda men-debug masalah pada DAG. Setelah Anda menyelesaikan masalah, commit perbaikan dan push ke cabang Anda. Pemeriksaan pra-pengiriman akan berjalan lagi, dan Anda dapat terus melakukan iterasi menggunakan log sebagai alat proses debug.
Bagaimana jika tugas sinkronisasi DAG saya gagal?
Gunakan konsol Google Cloud untuk
melihat hasil build Anda. Jika memiliki banyak pemicu Cloud Build, Anda dapat memfilter build berdasarkan nama pemicu add-dags-to-composer
. Periksa log tugas build dan selesaikan
error. Jika Anda memerlukan bantuan tambahan untuk mengatasi error, gunakan
saluran dukungan.
Bagaimana jika DAG saya tidak berfungsi dengan benar di lingkungan Cloud Composer?
Jika DAG tidak berfungsi seperti yang diharapkan di lingkungan Cloud Composer pengembangan, jangan promosikan DAG secara manual ke lingkungan Cloud Composer produksi. Sebagai gantinya, lakukan salah satu hal berikut:
- Kembalikan permintaan pull dengan perubahan yang merusak DAG untuk memulihkannya ke status tepat sebelum perubahan Anda (tindakan ini juga akan 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 pra-pengiriman baru dan setelah penggabungan, tugas sinkronisasi DAG.