Managed Airflow (Generasi 3) | Managed Airflow (Generasi 2) | Managed Airflow (Generasi 1 Lama)
Apache Airflow memiliki antarmuka command line (CLI) yang dapat Anda gunakan untuk melakukan tugas seperti memicu dan mengelola DAG, mendapatkan informasi tentang operasi dan tugas DAG, serta menambahkan dan menghapus koneksi dan pengguna.
Perintah Airflow CLI yang didukung
Airflow menggunakan sintaksis Airflow CLI, yang dijelaskan dalam dokumentasi Airflow.
Managed Airflow (Generasi 3) mendukung perintah Airflow CLI berikut:
(Airflow 2 dan 3) Perintah
gcloud composer environments runmenjalankan perintah Airflow CLI untuk lingkungan Anda. Beberapa perintah diblokir dan tidak dapat dijalankan. Lihat referensi perintah untuk mengetahui daftar perintah Airflow CLI yang didukung.(Airflow 3) Alat command line
airflowctlmendukung subset perintah Airflow CLI dan menjalankannya menggunakan Airflow REST API. Semua perintah yang tersedia diairflowctldidukung di Managed Airflow. Pastikan akun Airflow pengguna memiliki peran Airflow yang dapat menjalankan perintah tertentu.
Sebelum memulai
Untuk menjalankan perintah Airflow CLI melalui Google Cloud CLI:
Akun Google Anda harus memiliki izin untuk menggunakan Google Cloud CLI dengan Managed Airflow dan menjalankan perintah Airflow CLI.
Perintah Airflow CLI yang dijalankan melalui Google Cloud CLI menggunakan
environments.executeAirflowCommandkuota.
Untuk menjalankan perintah Airflow CLI melalui alat command line
airflowctl (di Airflow 3):
Akun Google Anda harus memiliki izin
composer.environments.get. Izin ini diberikan oleh peran yang dapat melihat lingkungan Managed Airflow. Alat command lineairflowctltidak memerlukan izin untuk menjalankan perintah Airflow CLI.Perintah Airflow CLI yang dijalankan melalui
airflowctltidak menggunakanenvironments.executeAirflowCommandkuota.
Menjalankan perintah Airflow CLI dengan gcloud CLI
Untuk menjalankan perintah Airflow CLI di lingkungan Anda, gunakan gcloud CLI:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Ganti kode berikut:
ENVIRONMENT_NAME: nama lingkungan Anda.LOCATION: region tempat lingkungan berada.SUBCOMMAND: salah satu perintah Airflow CLI yang didukung.SUBCOMMAND_ARGUMENTSdengan 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 apa pun 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 flag --location, atau dengan
menetapkan lokasi default.
Misalnya, untuk memicu DAG bernama sample_quickstart dengan ID 5077 di lingkungan Managed Airflow Anda:
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Menjalankan perintah Airflow CLI dengan airflowctl
Alat command line airflowctl adalah utilitas command line
yang disediakan oleh Airflow untuk menjalankan perintah Airflow CLI. Alat ini mendukung subset perintah Airflow CLI dan menjalankannya menggunakan Airflow REST API. Semua perintah yang tersedia di airflowctl didukung di Managed Airflow.
Otorisasi dan autentikasi dengan airflowctl di Managed Airflow berfungsi dengan cara berikut:
Karena
airflowctlmenggunakan Airflow REST API, pastikan akun pengguna Airflow yang terkait dengan Akun Google atau akun layanan Anda memiliki peran Airflow dengan izin yang cukup untuk menjalankan perintah. Misalnya, beberapa perintah hanya dapat dijalankan oleh pengguna Airflow yang memiliki peranAdmin.Token API yang digunakan oleh
airflowctldisediakan dengan perintahgcloud auth application-default print-access-token. Secara default, token memiliki masa berlaku 1 jam. Anda dapat mengubahnya dengan argumen--lifetimeyang diberikan ke perintah ini.
Untuk melakukan autentikasi dengan airflowctl, jalankan perintah berikut:
airflowctl auth login \
--api-url WEB_SERVER_URL \
--api-token $(gcloud auth application-default print-access-token)
Ganti kode berikut:
WEB_SERVER_URL: URL server web Airflow . Pastikan URL ini tidak memiliki garis miring penutup ("/").
Contoh:
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth application-default print-access-token)
Setelah melakukan autentikasi dengan airflowctl, Anda dapat menjalankan perintah Airflow CLI:
airflowctl dags list
Menjalankan perintah Airflow CLI melalui Cloud Composer API
Di Managed Airflow (Generasi 3), Anda dapat menjalankan perintah Airflow CLI melalui Cloud Composer API.
Menjalankan 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 lebih banyak item 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"
]
}
Memeriksa status perintah
Setelah 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": "a117da94-355d-4ad4-839e-ac39ccb0bf48",
"pod": "airflow-webserver-66d96b858f-tn96b",
"podNamespace": "airflow-2-10-2-build-13-226523e4",
"nextLineNumber": 1
}