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, yang dijelaskan dalam dokumentasi Airflow.
Cloud Composer 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 Cloud Composer. 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 Cloud Composer dan menjalankan perintah Airflow CLI.
Perintah Airflow CLI yang dieksekusi melalui Google Cloud CLI menggunakan
environments.executeAirflowCommandkuota.
Untuk mengeksekusi perintah Airflow CLI melalui
alat command line airflowctl (di Airflow 3):
Akun Google Anda harus memiliki izin
composer.environments.get. ID ini disediakan oleh peran yang dapat melihat lingkungan Cloud Composer. Alat command lineairflowctltidak memerlukan izin untuk menjalankan perintah Airflow CLI.Perintah Airflow CLI yang dieksekusi melalui
airflowctltidak menggunakanenvironments.executeAirflowCommandkuota.
Menjalankan perintah Airflow CLI dengan gcloud CLI
Untuk menjalankan perintah CLI Airflow 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 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 Airflow CLI dengan airflowctl
Alat command line airflowctl adalah utilitas command line yang disediakan oleh Airflow untuk menjalankan perintah Airflow CLI. Airflow CLI 2 mendukung subset perintah Airflow CLI dan menjalankannya menggunakan Airflow REST API. Semua perintah yang tersedia di airflowctl didukung di
Cloud Composer.
Otorisasi dan autentikasi dengan airflowctl di Cloud Composer
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 dieksekusi oleh pengguna Airflow yang memiliki peranAdmin.Token API yang digunakan oleh
airflowctldiberikan dengan perintahgcloud auth. Secara default, token memiliki periode habis masa berlaku 1 jam. Anda dapat mengubahnya dengan argumen--lifetimeyang diberikan ke perintah ini.
Untuk mengautentikasi dengan airflowctl, jalankan perintah berikut:
airflowctl auth login \
--api-url WEB_SERVER_URL \
--api-token $(gcloud auth print-access-token)
Ganti kode berikut:
WEB_SERVER_URL: URL server web Airflow. Pastikan URL ini tidak memiliki garis miring di akhir ("/").
Contoh:
airflowctl auth login \
--api-url https://example-dot-us-central1.composer.googleusercontent.com \
--api-token $(gcloud auth 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 Cloud Composer 3, Anda dapat menjalankan perintah CLI Airflow 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": "a117da94-355d-4ad4-839e-ac39ccb0bf48",
"pod": "airflow-webserver-66d96b858f-tn96b",
"podNamespace": "airflow-2-10-2-build-13-226523e4",
"nextLineNumber": 1
}