Menjalankan DAG Apache Airflow di Managed Airflow (Generasi 2)

Managed Airflow (Generasi 3) | Managed Airflow (Generasi 2) | Managed Airflow (Generasi 1 Lama)

Panduan memulai cepat ini menunjukkan cara membuat lingkungan Managed Service untuk Apache Airflow dan menjalankan DAG Apache Airflow di Managed Airflow (Generasi 2).

Sebelum memulai

  1. Login ke akun Anda. Google Cloud Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Aktifkan Managed Airflow API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Penggunaan Layanan (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    Mengaktifkan API

  7. Untuk mendapatkan izin yang Anda perlukan untuk menyelesaikan panduan memulai cepat ini, minta administrator untuk memberi Anda peran IAM berikut di project Anda:

    Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.

    Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat akun layanan lingkungan

Saat membuat lingkungan, Anda menentukan akun layanan. Akun layanan ini disebut akun layanan lingkungan. Lingkungan Anda menggunakan akun layanan ini untuk melakukan sebagian besar operasi.

Akun layanan untuk lingkungan Anda bukan akun pengguna. Akun layanan adalah jenis akun khusus yang digunakan oleh aplikasi atau instance virtual machine (VM), bukan orang.

Untuk membuat akun layanan untuk lingkungan Anda:

  1. Buat akun layanan baru, seperti yang dijelaskan dalam dokumentasi Identity and Access Management.

  2. Berikan peran ke akun layanan tersebut, seperti yang dijelaskan dalam dokumentasi Identity and Access Management. Peran yang diperlukan adalah Composer Worker (composer.worker).

Membuat lingkungan

  1. Di Google Cloud konsol, buka halaman Create environment.

    Buka Create environment

  1. Jika ini adalah lingkungan pertama di project Anda, bagian Grant required permissions to Cloud Composer service account akan muncul.

    Anda menambahkan akun Managed Airflow Service Agent sebagai principal baru di akun layanan lingkungan Anda dan memberikan peran Cloud Composer v2 API Service Agent Extension ke akun tersebut.

    Pastikan Anda menggunakan akun layanan yang diinginkan untuk lingkungan Anda, lalu klik Grant.

  2. Di kolom Name, masukkan example-environment.

  3. Di menu drop-down Location, pilih region untuk lingkungan Managed Airflow. Panduan ini menggunakan region us-central1.

  4. Untuk opsi konfigurasi lingkungan lainnya, gunakan nilai default yang disediakan.

  5. Klik Create dan tunggu hingga lingkungan dibuat.

  6. Setelah selesai, tanda centang hijau akan ditampilkan di samping nama lingkungan.

Membuat file DAG

DAG Airflow adalah kumpulan tugas terorganisir yang ingin Anda jadwalkan dan jalankan. DAG ditentukan dalam file Python standar.

Panduan ini menggunakan contoh DAG Airflow yang ditentukan dalam file quickstart.py. Kode Python dalam file ini melakukan hal berikut:

  1. Membuat DAG, composer_sample_dag. DAG ini berjalan setiap hari.
  2. Menjalankan satu tugas, print_dag_run_conf. Tugas ini mencetak konfigurasi DAG run menggunakan operator bash.

Simpan salinan file quickstart.py di komputer lokal Anda:

import datetime

from airflow import models
from airflow.operators import bash

# If you are running Airflow in more than one time zone
# see https://airflow.apache.org/docs/apache-airflow/stable/timezone.html
# for best practices
YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)

default_args = {
    "owner": "Composer Example",
    "depends_on_past": False,
    "email": [""],
    "email_on_failure": False,
    "email_on_retry": False,
    "retries": 1,
    "retry_delay": datetime.timedelta(minutes=5),
    "start_date": YESTERDAY,
}

with models.DAG(
    "composer_quickstart",
    catchup=False,
    default_args=default_args,
    schedule_interval=datetime.timedelta(days=1),
) as dag:
    # Print the dag_run id from the Airflow logs
    print_dag_run_conf = bash.BashOperator(
        task_id="print_dag_run_conf", bash_command="echo {{ dag_run.id }}"
    )

Mengupload file DAG ke bucket lingkungan Anda

Setiap lingkungan Managed Airflow memiliki bucket Cloud Storage yang terkait dengannya. Airflow di Managed Airflow hanya menjadwalkan DAG yang berada di folder /dags di bucket ini.

Untuk menjadwalkan DAG, upload quickstart.py dari komputer lokal Anda ke folder /dags lingkungan Anda:

  1. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

  2. Dalam daftar lingkungan, klik nama lingkungan Anda, example-environment. Halaman Environment details akan terbuka.

  3. Klik Open DAGs folder. Halaman Bucket details akan terbuka.

  4. Klik Upload files , lalu pilih salinan quickstart.py Anda.

  5. Untuk mengupload file, klik Open.

Melihat DAG

Setelah Anda mengupload file DAG, Airflow akan melakukan hal berikut:

  1. Mengurai file DAG yang Anda upload. DAG mungkin memerlukan waktu beberapa menit agar tersedia untuk Airflow.
  2. Menambahkan DAG ke daftar DAG yang tersedia.
  3. Menjalankan DAG sesuai dengan jadwal yang Anda berikan dalam file DAG.

Pastikan DAG Anda diproses tanpa error dan tersedia di Airflow dengan melihatnya di UI DAG. UI DAG adalah antarmuka Managed Airflow untuk melihat informasi DAG di Google Cloud konsol. Managed Airflow juga menyediakan akses ke UI Airflow, yang merupakan antarmuka web Airflow native.

  1. Tunggu sekitar lima menit untuk memberi Airflow waktu memproses file DAG yang Anda upload sebelumnya, dan untuk menyelesaikan DAG run pertama (dijelaskan nanti).

  2. Di Google Cloud konsol, buka halaman Environments.

    Buka Environments

  3. Dalam daftar lingkungan, klik nama lingkungan Anda, example-environment. Halaman Environment details akan terbuka.

  4. Buka tab DAGs.

  5. Pastikan DAG composer_quickstart ada dalam daftar DAG.

    Daftar DAG menampilkan DAG composer_quickstart dengan
    informasi tambahan seperti status dan jadwal
    Gambar 1. Daftar DAG menampilkan DAG composer_quickstart (klik untuk memperbesar)

Melihat detail DAG run

Satu kali eksekusi DAG disebut DAG run. Airflow segera menjalankan DAG run untuk contoh DAG karena tanggal mulai dalam file DAG ditetapkan ke kemarin. Dengan cara ini, Airflow akan mengejar jadwal DAG yang ditentukan.

Contoh DAG berisi satu tugas, print_dag_run_conf, yang menjalankan perintah echo di konsol. Perintah ini menampilkan informasi meta tentang DAG (ID numerik DAG run).

  1. Di tab DAGs, klik composer_quickstart. Tab Runs untuk DAG akan terbuka.

  2. Dalam daftar DAG run, klik entri pertama.

    Daftar DAG run menampilkan DAG run terbaru (tanggal eksekusi
    dan statusnya)
    Gambar 2. Daftar DAG run untuk DAG composer_quickstart (klik untuk memperbesar)
  3. Detail DAG run ditampilkan, yang menjelaskan informasi tentang setiap tugas dari contoh DAG.

    Daftar tugas dengan entri print_dag_run_conf, waktu
    mulai, waktu berakhir, dan durasinya
    Gambar 3. Daftar tugas yang dijalankan dalam DAG run (klik untuk memperbesar)
  4. Bagian Logs for DAG run mencantumkan log untuk semua tugas dalam DAG run. Anda dapat melihat output perintah echo di log.

    Entri log tugas, salah satunya adalah Output dan yang lainnya mencantumkan
    ID
    Gambar 4. Log tugas print_dag_run_conf (klik untuk memperbesar)

Pembersihan

Agar akunAnda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut. Google Cloud

Hapus resource yang digunakan dalam tutorial ini:

  1. Hapus lingkungan Managed Airflow:

    1. Di Google Cloud konsol, buka halaman Environments.

      Buka Environments

    2. Pilih example-environment, lalu klik Delete.

    3. Tunggu hingga lingkungan dihapus.

  2. Hapus bucket lingkungan Anda. Menghapus lingkungan Managed Airflow tidak akan menghapus bucketnya.

    1. Di Google Cloud konsol, buka halaman Storage > Browser.

      Buka Storage > Browser

    2. Pilih bucket lingkungan, lalu klik Delete. Misalnya, bucket ini dapat diberi nama us-central1-example-environ-c1616fe8-bucket.

Langkah berikutnya