Mengakses antarmuka command line Airflow

Cloud Composer 1 | Cloud Composer 2

Apache Airflow memiliki antarmuka command line (CLI) yang dapat Anda gunakan untuk melakukan tugas seperti memicu dan mengelola DAG, mendapatkan informasi tentang tugas dan operasi DAG, menambahkan serta menghapus koneksi dan pengguna.

Tentang versi sintaksis CLI

Airflow di Cloud Composer 1 menyediakan dua sintaksis yang berbeda untuk perintah CLI:

Perintah CLI Airflow yang didukung

Untuk mengetahui daftar lengkap perintah CLI Airflow yang didukung, lihat referensi gcloud composer environments run.

Sebelum memulai

  • Anda harus memiliki izin yang memadai untuk menggunakan alat command line gcloud dengan Cloud Composer dan menjalankan perintah CLI Airflow. Untuk mengetahui informasi selengkapnya, lihat kontrol akses.

  • Pada Cloud Composer versi sebelum 2.4.0, Anda memerlukan akses ke bidang kontrol cluster lingkungan Anda untuk menjalankan perintah CLI Airflow.

Menjalankan perintah CLI Airflow

Untuk menjalankan perintah CLI Airflow di lingkungan Anda, gunakan gcloud:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    SUBCOMMAND \
    -- SUBCOMMAND_ARGUMENTS

Ganti:

  • ENVIRONMENT_NAME dengan nama lingkungan.
  • LOCATION dengan region tempat lingkungan berada.
  • SUBCOMMAND dengan salah satu perintah CLI Airflow yang didukung.
  • SUBCOMMAND_ARGUMENTS dengan argumen untuk perintah CLI Airflow.

Pemisah argumen sub-perintah

Memisahkan argumen untuk perintah CLI Airflow yang ditentukan dengan --:

Aliran udara 2

Untuk sintaksis CLI Airflow 2:

  • Menentukan perintah CLI gabungan sebagai sub-perintah.
  • Tentukan argumen untuk perintah gabungan sebagai argumen sub-perintah, setelah pemisah --.
gcloud composer environments run example-environment \
    dags list -- --output=json

Aliran udara 1

Untuk sintaksis CLI Airflow 1.10:

  • Menentukan perintah CLI sebagai sub-perintah.
  • Menentukan argumen apa pun setelah pemisah --.
gcloud composer environments run example-environment \
    list_dags -- --report

Lokasi default

Sebagian besar perintah gcloud composer memerlukan lokasi. Anda dapat menentukan lokasi dengan tanda --location, atau dengan menetapkan lokasi default.

Contoh

Misalnya, untuk memicu DAG bernama sample_quickstart dengan ID 5077 di lingkungan Cloud Composer Anda:

Aliran udara 2

gcloud composer environments run example-environment \
    --location us-central1 dags trigger -- sample_quickstart \
    --run-id=5077

Aliran udara 1

gcloud composer environments run example-environment \
    --location us-central1 trigger_dag -- sample_quickstart \
    --run_id=5077

Menjalankan perintah pada lingkungan IP pribadi

Untuk menjalankan perintah CLI Airflow di lingkungan IP Pribadi, jalankan perintah tersebut di mesin yang dapat mengakses endpoint bidang kontrol cluster GKE. Opsi Anda dapat bervariasi, bergantung pada konfigurasi cluster pribadi.

Jika akses endpoint publik dinonaktifkan di cluster lingkungan Anda, perintah gcloud composer tidak dapat digunakan untuk menjalankan Airflow CLI. Agar dapat menjalankan perintah CLI Airflow, lakukan langkah-langkah berikut:

  1. Membuat VM di jaringan VPC Anda
  2. Dapatkan kredensial cluster. Jalankan perintah berikut: bash gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip
  • Gunakan kubectl untuk menjalankan perintah Airflow Anda. Contoh:
kubectl exec deployment/airflow-scheduler -n COMPOSER_NAMESPACE \
  --container airflow-scheduler -- airflow dags list

Ganti COMPOSER_NAMESPACE dengan namespace yang mirip dengan: composer-2-0-28-airflow-2-3-394zxc12411. Anda dapat menemukan Cloud Composer di daftar beban kerja atau dengan menggunakan perintah kubectl get namespaces.

Jika akses endpoint publik diaktifkan di cluster lingkungan, Anda juga dapat menjalankan perintah CLI Airflow dari mesin dengan alamat IP eksternal yang ditambahkan ke jaringan yang diizinkan. Untuk mengaktifkan akses dari komputer Anda, tambahkan alamat eksternal perangkat ke daftar jaringan yang diizinkan di lingkungan Anda.

Pemecahan masalah

Tidak ada konektivitas ke bidang kontrol cluster

Saat menjalankan perintah gcloud composer environments run atau kubectl, Anda mungkin mengalami error berikut:

Get "https://<IP Address>/api?timeout=32s": dial tcp <IP Address>:443: i/o timeout"

Gejala: Pesan error ini menunjukkan bahwa tidak ada konektivitas jaringan dari komputer tempat Anda menjalankan perintah ini.

Solusi: Ikuti panduan yang disajikan di bagian Menjalankan perintah di lingkungan IP pribadi atau gunakan petunjuk yang tersedia di bagian Waktu tunggu perintah kubectl habis.