Dalam artikel ini kami akan memperkenalkan alternatif pendekatan yang direkomendasikan Google untuk menjadwalkan proses pipeline Vertex AI.

Rekomendasi Google

Dokumentasi saat ini akan kita:
1. Membuat pipeline & mengunggah spesifikasi pipeline ke GCS
2. Membuat Cloud Function dengan HTTP Trigger
3. Membuat tugas Job Scheduler

Ini berfungsi dengan baik dan lebih murah dibandingkan menjalankan layanan Composer.
Kecuali saya menggunakan Cloud Composer (Airflow) untuk mengelola pipeline saya yang lain, dan memiliki beberapa sistem penjadwalan mengganggu (lebih banyak pemantauan, lebih banyak on-boarding untuk yang baru rekan satu tim, lebih banyak potensi masalah, dll.).

Saya akan menjelaskan cara mengganti pekerjaan Job Scheduler dengan Airflow DAG, lalu bagaimana cara menghilangkan Cloud Function juga.

Mengganti pekerjaan Penjadwal Pekerjaan dengan DAG

Hal ini membuat DAG berisi satu tugas: memanggil endpoint Cloud Function dengan parameter yang sesuai. Hal ini dapat dicapai dengan menggunakan PythonOperator dari airflow.operators.python atau dengan dekorator pada fungsi python @airflow.decorators.task .

Ini versi PythonOperator:

Sekarang parameter URL adalah titik akhir fungsi cloud. Saya mengubah kode Cloud Function untuk menguraikan request ("berdasarkan dokumen"):

# Example code, this is somehow generic but not ideal
def process_request(request):
    
    ...
    pipeline_spec_uri = request.args.get('pipeline_spec_uri')
    parameter_values = {}
    for key, value in request.args.items():
         if key == 'pipeline_spec_uri':
            continue
         parameter_values[key] = value
    [rest of code: aiplatform init, job, submit]

Penjadwalan dengan Komposer/Aliran Udara saja

Sekarang juga untuk menghilangkan bit Cloud Function:
1. Tambahkan dependensi ke Airflow, dalam kasus Composer di bawah PYPI PACKAGEStab (abaikan slackpart, ini untuk peringatan kegagalan dari postingan ini), versinya (atau kekurangannya) berasal dari dokumen GCP:

2. Perbarui DAG untuk menggunakan aiplatform , mari gunakan dekorator untuk mengilustrasikan bahwa:

Sekarang kami hanya menggunakan: Vertex AI untuk pipeline dan Composer untuk memicunya sesuai jadwal.