Menguji DAG

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Sebelum men-deploy DAG ke produksi, Anda dapat menjalankan sub-perintah Airflow CLI untuk mengurai kode DAG dalam konteks yang sama tempat DAG dieksekusi.

Menguji DAG secara lokal dengan alat Composer Local Development CLI

Penyederhanaan alat CLI Pengembangan Lokal Composer Pengembangan DAG Apache Airflow untuk Cloud Composer 2 dengan menjalankan Airflow lingkungan lokal secara lokal. Lingkungan Airflow lokal ini menggunakan gambar versi Cloud Composer 2 tertentu.

Anda dapat mengembangkan dan menguji DAG menggunakan lingkungan Airflow lokal ini, dan lalu transfer DAG ke lingkungan Cloud Composer pengujian Anda. Bagian selanjutnya dalam panduan ini menjelaskan pengujian DAG dalam pengujian lingkungan Cloud Composer.

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 {i>database<i}.

Sebaiknya tempatkan DAG di folder data/test di lingkungan pengujian Anda.

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 Cloud Composer.

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 mengupdate DAG.

Memeriksa error sintaksis

Untuk memeriksa error sintaksis di DAG yang Anda upload ke /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: wilayah tempat lingkungan berada.

Memeriksa error tugas

Untuk memeriksa error khusus tugas di DAG yang Anda upload ke /data/test buka folder tersebut, 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: wilayah 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 langsung 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

Mengupdate dan menguji DAG yang di-deploy

Untuk menguji update pada DAG di lingkungan pengujian:

  1. Salin DAG yang di-deploy yang ingin Anda update ke data/test.
  2. Update DAG.
  3. Uji DAG.
    1. Periksa apakah ada error sintaksis.
    2. Periksa error untuk tugas tertentu.
  4. Pastikan DAG berhasil dijalankan.
  5. Nonaktifkan DAG di lingkungan pengujian Anda.
    1. Buka UI Airflow > DAG.
    2. Jika DAG yang Anda ubah berjalan terus-menerus, nonaktifkan DAG.
    3. Untuk mempercepat tugas yang belum selesai, klik tugas tersebut dan Tandai Berhasil.
  6. Men-deploy DAG ke lingkungan produksi.
    1. Nonaktifkan DAG di lingkungan produksi.
    2. Mengupload DAG yang telah diperbarui ke folder dags/ di lingkungan produksi Anda.

FAQ untuk menguji DAG

Bagaimana cara mengisolasi DAG yang dijalankan di lingkungan produksi dan pengujian saya?

Misalnya, Airflow memiliki repositori global kode sumber di dags/ yang digunakan bersama oleh semua DAG. Anda ingin memperbarui kode sumber dalam produksi atau menguji tanpa mengganggu DAG yang berjalan.

Airflow tidak menyediakan isolasi DAG yang kuat. Saran dari kami Anda mempertahankan produksi terpisah dan menguji Cloud Composer lingkungan untuk mencegah DAG pengujian mengganggu produksi Anda DAG.

Bagaimana cara menghindari gangguan DAG saat menjalankan pengujian integrasi dari berbagai cabang GitHub

Gunakan nama tugas yang unik untuk mencegah gangguan. Misalnya, Anda dapat memberikan awalan ID tugas Anda dengan nama cabang.

Apa praktik terbaik untuk pengujian integrasi dengan Airflow?

Sebaiknya gunakan lingkungan khusus untuk pengujian integrasi dengan Aliran udara. Salah satu cara untuk menandakan keberhasilan operasi DAG adalah dengan menulis ke file di folder Cloud Storage, lalu periksa konten di folder kasus pengujian integrasi 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 diambil otomatis oleh Penjadwal atau server web Airflow

Kontributor DAG dapat membuat operasi DAG manual dengan 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 menjaga lingkungan deployment dan produksi saya tetap sinkron?

Untuk mengelola akses:

  • Untuk otentikasi, gunakan akun layanan Anda.

  • Untuk kontrol akses, gunakan Identity and Access Management dan Cloud Composer peran dan izin.

Untuk men-deploy dari pengembangan ke produksi:

  • Memastikan konfigurasi yang konsisten, seperti variabel lingkungan dan PyPI paket.

  • Memastikan argumen DAG yang konsisten. Untuk menghindari {i>hard-coding<i}, sebaiknya Anda menggunakan makro dan variabel Airflow.

    Contoh:

    gcloud composer environments run test-environment-name \
      variables set -- DATA_ENDPOINT_KEY DATA_ENDPOINT_VALUE
    

Langkah selanjutnya