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 GitHub Anda repositori resource.
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 mengirimkan perubahan tersebut ke cabang pengembangan dalam repositori Anda.
Anda membuka permintaan pull terhadap cabang utama repositori.
Cloud Build menjalankan pengujian unit untuk memeriksa apakah DAG Anda valid.
Permintaan pull Anda disetujui dan digabungkan ke cabang utama repositori resource.
Cloud Build menyinkronkan pengembangan Anda lingkungan Cloud Composer dengan perubahan baru ini.
Anda memverifikasi bahwa DAG berperilaku seperti yang diharapkan dalam pengembangan Anda lingkungan fleksibel App Engine.
Jika DAG berfungsi seperti yang diharapkan, Anda harus mengupload DAG ke produksi lingkungan Cloud Composer.
Tujuan
Sebelum memulai
Panduan ini mengasumsikan bahwa Anda bekerja dengan dua model Lingkungan Cloud Composer: lingkungan pengembangan dan lingkungan production.
Untuk tujuan panduan ini, Anda hanya mengonfigurasi pipeline CI/CD untuk lingkungan pengembangan Anda. Pastikan bahwa lingkungan yang Anda gunakan bukan lingkungan produksi.
Panduan ini mengasumsikan bahwa Anda menyimpan DAG dan pengujiannya di GitHub. repositori resource.
Tujuan contoh pipeline CI/CD menunjukkan isi repositori contoh. DAG dan pengujian disimpan di direktori
dags/
, dengan file persyaratan, batasan dan file konfigurasi Cloud Build yang disimpan di level teratas. Utilitas sinkronisasi DAG dan persyaratannya terdapat di Direktoriutils
.
Membuat tugas pemeriksaan pra-pengiriman dan pengujian unit
Tugas Cloud Build pertama menjalankan pemeriksaan pra-pengiriman, yang menjalankan unit untuk DAG.
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, jika
file untuk DAG di example_dag.py
adalah example_dag_test.py
. Berikut adalah
pengujian yang dijalankan sebagai
pemeriksaan pra-pengiriman di repositori Anda.
Membuat konfigurasi YAML Cloud Build untuk pemeriksaan prapengiriman
Di repositori Anda, 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 prapengiriman
Ikuti Membangun repositori dari GitHub panduan untuk membuat pemicu berbasis aplikasi GitHub dengan konfigurasi berikut:
Nama:
test-dags
Peristiwa: Permintaan Pull
Sumber - Repositori: pilih repositori Anda
Sumber - Cabang dasar:
^main$
(ubahmain
menjadi nama cabang dasar repositori, jika diperlukan)Sumber - Kontrol Komentar: tidak wajib
Konfigurasi Build - File konfigurasi build cloud:
/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. Tujuan {i>script<i} utilitas dalam tugas ini menyinkronkan DAG Anda dengan Lingkungan Cloud Composer setelah digabungkan ke cabang utama dalam repositori Anda.
Menambahkan skrip utilitas DAG
Tambahkan skrip utilitas DAG ke repositori Anda. Skrip utilitas ini menyalin semua file DAG di direktori dags/
repositori ke direktori sementara, dengan mengabaikan semua file Python non-DAG. Tujuan
skrip, lalu menggunakan library klien Cloud Storage untuk mengupload semua file
dari direktori sementara itu ke direktori dags/
di
Bucket lingkungan Cloud Composer.
Membuat konfigurasi YAML Cloud Build untuk menyinkronkan DAG
Di repositori Anda, buat file YAML bernama
add-dags-to-composer.cloudbuild.yaml
yang mengonfigurasi Cloud Build Anda
untuk menyinkronkan DAG. Di dalamnya, ada dua langkah:
Instal dependensi yang diperlukan oleh skrip utilitas DAG.
Jalankan skrip utilitas untuk menyinkronkan DAG di repositori Anda dengan lingkungan Cloud Composer.
Membuat pemicu Cloud Build
Ikuti Membangun repositori dari GitHub panduan untuk membuat pemicu berbasis aplikasi GitHub dengan konfigurasi berikut:
Nama:
add-dags-to-composer
Peristiwa: Mengirim ke cabang
Sumber - Repositori: pilih repositori Anda
Sumber - Cabang dasar:
^main$
(ubahmain
menjadi nama cabang dasar repositori, jika diperlukan)Sumber - Filter file yang disertakan (glob):
dags/**
Konfigurasi Build - File konfigurasi build cloud:
/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, kodenya adalahdags/
._DAGS_BUCKET
- bucket Cloud Storage yang berisi Direktoridags/
di Cloud Composer pengembangan Anda lingkungan fleksibel App Engine. Hapus awalangs://
. Contoh:us-central1-example-env-1234ab56-bucket
.
Menguji pipeline CI/CD
Di bagian ini, ikuti alur pengembangan DAG yang menggunakan membuat pemicu Cloud Build.
Menjalankan tugas pra-pengiriman
Buat permintaan pull ke cabang utama untuk menguji build Anda. Temukan pemeriksaan pra-pengiriman di halaman. Klik Details dan pilih Lihat detail selengkapnya tentang Google Cloud Build untuk melihat log build Anda di Konsol Google Cloud Anda.
Jika pemeriksaan pra-pengiriman Anda gagal, lihat Mengatasi kegagalan build.
Memvalidasi bahwa DAG berfungsi di lingkungan Cloud Composer pengembangan
Setelah permintaan pull disetujui, gabungkan permintaan tersebut ke cabang utama Anda. Gunakan
Konsol Google Cloud 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 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 produksi
lingkungan fleksibel App Engine. Untuk melakukannya,
mengupload file DAG
ke direktori dags/
di Cloud Composer produksi Anda
bucket lingkungan.
Jika tugas sinkronisasi DAG gagal atau jika DAG tidak berperilaku seperti yang diharapkan dalam lingkungan Cloud Composer pengembangan, lihat Mengatasi 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 lalu pilih Lihat detail selengkapnya tentang Google Cloud Build untuk melihat log build Anda di Konsol Google Cloud Anda. Gunakan log ini untuk membantu Anda men-debug masalah dengan DAG. Setelah masalah teratasi, lakukan perbaikan dan kirim ke . Pemeriksaan pra-pengiriman akan berjalan kembali, dan Anda dapat terus melakukan iterasi menggunakan log sebagai alat debug.
Bagaimana jika tugas sinkronisasi DAG saya gagal?
Gunakan Konsol Google Cloud 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 selesaikan masalah
yang sama. Jika Anda memerlukan bantuan tambahan untuk mengatasi error ini,
saluran dukungan.
Bagaimana jika DAG saya tidak berfungsi dengan baik di lingkungan Cloud Composer?
Jika DAG tidak berfungsi seperti yang diharapkan dalam pengembangan Anda di lingkungan Cloud Composer, jangan promosikan DAG secara manual ke lingkungan Cloud Composer production. Sebagai gantinya, lakukan salah satu hal berikut:
- Membatalkan permintaan pull dengan perubahan yang merusak DAG Anda 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 pada DAG yang rusak secara manual.
- Buat permintaan pull baru untuk memperbaiki error di DAG Anda.
Mengikuti salah satu langkah ini akan memicu pemeriksaan pra-pengiriman baru dan saat penggabungan, tugas sinkronisasi DAG.