Managed Airflow (Gen 3) | Managed Airflow (Gen 2) | Managed Airflow (Gen 1 Lama)
Sebelum men-deploy DAG ke produksi, Anda dapat menjalankan sub-perintah CLI Airflow untuk mengurai kode DAG dalam konteks yang sama dengan DAG yang dijalankan.
Menguji DAG secara lokal dengan alat CLI Pengembangan Lokal Composer
Alat CLI Pengembangan Lokal Composer menyederhanakan pengembangan DAG Apache Airflow untuk Managed Airflow (Gen 2) dengan menjalankan lingkungan Airflow secara lokal. Lingkungan Airflow lokal ini menggunakan image versi Managed Airflow (Gen 2) tertentu.
Anda dapat mengembangkan dan menguji DAG menggunakan lingkungan Airflow lokal ini, lalu mentransfer DAG ke lingkungan Managed Airflow pengujian. Bagian selanjutnya dari panduan ini menjelaskan pengujian DAG di lingkungan Managed Airflow pengujian.
Pengujian selama pembuatan DAG
Anda dapat menjalankan satu instance tugas secara lokal dan melihat output log. Dengan melihat output, Anda dapat memeriksa error sintaksis dan tugas. Pengujian secara lokal tidak memeriksa dependensi atau mengomunikasikan status ke database.
Sebaiknya tempatkan DAG di folder data/test di lingkungan pengujian.
Membuat direktori pengujian
Di bucket lingkungan Anda, buat direktori pengujian dan salin DAG ke direktori tersebut.
gcloud storage cp BUCKET_NAME/dags \
BUCKET_NAME/data/test --recursive
Ganti kode berikut:
BUCKET_NAME: nama bucket yang terkait dengan lingkungan Managed Airflow Anda.
Contoh:
gcloud storage cp gs://us-central1-example-environment-a12bc345-bucket/dags \
gs://us-central1-example-environment-a12bc345-bucket/data/test --recursive
Untuk mengetahui informasi selengkapnya tentang cara mengupload DAG, lihat Menambahkan dan memperbarui DAG.
Memeriksa error sintaksis
Untuk memeriksa error sintaksis di DAG yang Anda upload ke folder /data/test, masukkan perintah gcloud berikut:
gcloud composer environments run \
ENVIRONMENT_NAME \
--location ENVIRONMENT_LOCATION \
dags list -- --subdir /home/airflow/gcs/data/test
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan.ENVIRONMENT_LOCATION: region tempat lingkungan berada.
Memeriksa error tugas
Untuk memeriksa error khusus tugas di DAG yang Anda upload ke folder /data/test, jalankan perintah gcloud berikut:
gcloud composer environments run \
ENVIRONMENT_NAME \
--location ENVIRONMENT_LOCATION \
tasks test -- --subdir /home/airflow/gcs/data/test \
DAG_ID TASK_ID \
DAG_EXECUTION_DATE
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan.ENVIRONMENT_LOCATION: region tempat lingkungan berada.DAG_ID: ID DAG.TASK_ID: ID tugas.DAG_EXECUTION_DATE: tanggal eksekusi DAG. Tanggal ini digunakan untuk tujuan pembuatan template. Terlepas dari tanggal yang Anda tentukan di sini, DAG akan segera berjalan.
Contoh:
gcloud composer environments run \
example-environment \
--location us-central1 \
tasks test -- --subdir /home/airflow/gcs/data/test \
hello_world print_date 2021-04-22
Memperbarui dan menguji DAG yang di-deploy
Untuk menguji update pada DAG di lingkungan pengujian:
- Salin DAG yang di-deploy yang ingin Anda update ke
data/test. - Perbarui DAG.
- Uji DAG.
- Pastikan DAG berjalan dengan sukses.
- Nonaktifkan DAG di lingkungan pengujian.
- Buka UI Airflow > halaman DAG.
- Jika DAG yang Anda ubah berjalan terus-menerus, nonaktifkan DAG.
- Untuk mempercepat tugas yang belum selesai, klik tugas dan Tandai Berhasil.
- Deploy DAG ke lingkungan produksi.
- Nonaktifkan DAG di lingkungan produksi.
- Unggah DAG yang diperbarui
ke folder
dags/di lingkungan produksi.
FAQ untuk menguji DAG
Bagaimana cara mengisolasi operasi DAG di lingkungan produksi dan pengujian?
Misalnya, Airflow memiliki repositori global kode sumber di folder dags/ yang digunakan bersama oleh semua operasi DAG. Anda ingin mengupdate kode sumber dalam produksi atau pengujian tanpa mengganggu DAG yang sedang berjalan.
Airflow tidak memberikan isolasi DAG yang kuat. Sebaiknya pertahankan lingkungan Managed Airflow produksi dan pengujian terpisah untuk mencegah DAG pengujian mengganggu DAG produksi.
Bagaimana cara menghindari gangguan DAG saat menjalankan pengujian integrasi dari cabang GitHub yang berbeda
Gunakan nama tugas yang unik untuk mencegah gangguan. Misalnya, Anda dapat menambahkan nama cabang sebagai awalan ID tugas.
Apa praktik terbaik untuk pengujian integrasi dengan Airflow?
Sebaiknya gunakan lingkungan khusus untuk pengujian integrasi dengan Airflow. Salah satu cara untuk memberi sinyal keberhasilan operasi DAG adalah dengan menulis ke file di folder Cloud Storage, lalu memeriksa konten dalam kasus pengujian integrasi Anda sendiri.
Bagaimana cara berkolaborasi secara efisien dengan kontributor DAG lainnya?
Setiap kontributor dapat memiliki subdirektori di folder data/ untuk pengembangan.
DAG yang ditambahkan ke folder data/ tidak akan dipilih secara otomatis oleh penjadwal Airflow atau server web
Kontributor DAG dapat membuat operasi DAG manual menggunakan perintah gcloud composer environments run dan sub-perintah test dengan tanda --subdir untuk menentukan direktori pengembangan kontributor.
Contoh:
gcloud composer environments run test-environment-name \
tasks test -- dag-id task-id execution-date \
--subdir /home/airflow/gcs/data/alice_dev
Bagaimana cara menyinkronkan lingkungan deployment dan produksi?
Untuk mengelola akses:
Untuk autentikasi, gunakan akun layanan.
Untuk kontrol akses, gunakan Identity and Access Management serta Managed Airflow peran dan izin.
Untuk men-deploy dari pengembangan ke produksi:
Pastikan konfigurasi yang konsisten, seperti variabel lingkungan dan paket PyPI.
Pastikan argumen DAG yang konsisten. Untuk menghindari hardcode, sebaiknya gunakan makro dan variabel Airflow.
Contoh:
gcloud composer environments run test-environment-name \ variables set -- DATA_ENDPOINT_KEY DATA_ENDPOINT_VALUE
Langkah berikutnya
- Memecahkan Masalah DAG
- Menambahkan dan Memperbarui DAG
- Menguji, menyinkronkan, dan men-deploy DAG menggunakan kontrol versi