Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Apache Airflow memiliki antarmuka command line (CLI) yang dapat Anda gunakan untuk melakukan tugas seperti memicu dan mengelola DAG, mendapatkan informasi tentang tugas dan eksekusi DAG, menambahkan dan menghapus koneksi dan pengguna.
Perintah Airflow CLI yang didukung
Airflow menggunakan sintaksis CLI Airflow 2, yang dijelaskan dalam dokumentasi Airflow.
Untuk daftar lengkap perintah Airflow CLI yang didukung, lihat referensi untuk perintah
gcloud composer environments run
.
Sebelum memulai
Anda harus memiliki izin untuk menggunakan Google Cloud CLI dengan Cloud Composer dan menjalankan perintah Airflow CLI.
Perintah Airflow CLI menggunakan
environments.executeAirflowCommand
kuota.Di Cloud Composer versi sebelum 2.4.0, Anda memerlukan akses ke bidang kontrol cluster lingkungan Anda untuk menjalankan perintah Airflow CLI.
Menjalankan perintah Airflow CLI
Untuk menjalankan perintah CLI Airflow di lingkungan Anda, gunakan gcloud CLI:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Ganti item berikut :
ENVIRONMENT_NAME
: nama lingkungan Anda.LOCATION
: region tempat lingkungan berada.SUBCOMMAND
: salah satu perintah Airflow CLI yang didukung.SUBCOMMAND_ARGUMENTS
dengan argumen untuk perintah Airflow CLI.
Pemisah argumen sub-perintah
Pisahkan argumen untuk perintah Airflow CLI yang ditentukan dengan --
:
- Tentukan perintah CLI gabungan sebagai sub-perintah.
- Tentukan argumen untuk perintah gabungan sebagai argumen sub-perintah,
setelah pemisah
--
.
Contoh:
gcloud composer environments run example-environment \
dags list -- --output=json
Lokasi default
Sebagian besar perintah gcloud composer
memerlukan lokasi. Anda dapat menentukan
lokasi dengan tanda --location
, atau dengan
menetapkan lokasi default.
Misalnya, untuk memicu DAG bernama sample_quickstart
dengan ID 5077
di
lingkungan Cloud Composer Anda:
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Menjalankan perintah di lingkungan IP pribadi
Di Cloud Composer versi sebelum 2.4.0:
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 Anda.
Jika akses endpoint publik dinonaktifkan di cluster lingkungan Anda, perintah gcloud composer
tidak dapat digunakan untuk menjalankan Airflow CLI.
Untuk dapat menjalankan perintah Airflow CLI, lakukan langkah-langkah berikut:
- Buat VM di jaringan VPC Anda
Dapatkan kredensial cluster. Jalankan perintah berikut:
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 workload atau menggunakan perintah kubectl get namespaces
.
Jika akses endpoint publik diaktifkan di cluster lingkungan Anda, Anda juga dapat menjalankan perintah Airflow CLI dari mesin dengan alamat IP eksternal yang ditambahkan ke jaringan yang diizinkan. Untuk mengaktifkan akses dari komputer Anda, tambahkan alamat eksternal komputer Anda ke daftar jaringan yang diizinkan di lingkungan Anda.
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
Perintah kubectl
kehabisan waktu.
Menjalankan perintah Airflow CLI melalui Cloud Composer API
Mulai dari Cloud Composer versi 2.4.0, Anda dapat menjalankan perintah Airflow CLI melalui Cloud Composer API.
Jalankan perintah
Buat permintaan API environments.executeAirflowCommand
:
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
Ganti kode berikut:
PROJECT_ID
: Project ID.LOCATION
: region tempat lingkungan berada.ENVIRONMENT_NAME
: nama lingkungan Anda.AIRFLOW_COMMAND
: Perintah Airflow CLI yang ingin Anda jalankan, sepertidags
.AIRFLOW_SUBCOMMAND
: Sub-perintah untuk perintah Airflow CLI yang ingin Anda jalankan, sepertilist
.- (opsional)
SUBCOMMAND_PARAMETER
: Parameter untuk sub-perintah. Jika Anda ingin menggunakan lebih dari satu parameter, tambahkan item lainnya ke daftar.
Contoh:
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:executeAirflowCommand
{
"environment": "projects/example-project/locations/us-central1/environments/example-environment",
"command": "dags",
"subcommand": "list",
"parameters": [
"-o json",
"--verbose"
]
}
Status perintah polling
Setelah Anda menjalankan perintah Airflow CLI melalui Cloud Composer API, periksa apakah perintah berhasil diselesaikan dengan membuat permintaan
PollAirflowCommand dan memeriksa
kolom di exitInfo
untuk mengetahui error dan kode status. Kolom output
berisi
baris log.
Untuk mendapatkan status eksekusi perintah dan mengambil log, berikan nilai executionId
,
pod
, dan podNamespace
yang ditampilkan oleh ExecuteAirflowCommandRequest
:
Contoh:
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
"executionId": "39b82312-3a19-4d21-abac-7f8f19855ce7",
"pod": "airflow-scheduler-1327d8cd68-hblpd",
"podNamespace": "composer-2-4-0-airflow-2-5-3-184dadaf",
"nextLineNumber": 1
}