Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Referensi perintah Apache Airflow CLI
Topik ini menjelaskan perintah Apache Airflow yang didukung dan tidak didukung di Alur Kerja Terkelola CLI Amazon untuk Apache Airflow.
Prasyarat
Bagian berikut menjelaskan langkah-langkah awal yang diperlukan untuk menggunakan perintah dan skrip di halaman ini.
Akses
-
AWS akses akun di AWS Identity and Access Management (IAM) ke kebijakan MWAA izin Amazon diKebijakan akses Apache Airflow UI: A mazonMWAAWeb ServerAccess.
-
AWS akses akun di AWS Identity and Access Management (IAM) ke kebijakan MWAA Kebijakan akses penuh API dan konsol: A mazonMWAAFull ApiAccess izin Amazon.
AWS CLI
The AWS Command Line Interface (AWS CLI) adalah alat open source yang memungkinkan Anda berinteraksi dengan AWS layanan menggunakan perintah di shell baris perintah Anda. Untuk menyelesaikan langkah-langkah di halaman ini, Anda memerlukan yang berikut:
Apa yang berubah di v2
-
Baru: Struktur CLI perintah aliran udara. Apache Airflow v2 CLI diatur sedemikian rupa sehingga perintah terkait dikelompokkan bersama sebagai subperintah, yang berarti Anda perlu memperbarui skrip Apache Airflow v1 jika Anda ingin meningkatkan ke Apache Airflow v2. Misalnya,
unpause
di Apache Airflow v1 sekarang adadags unpause
di Apache Airflow v2. Untuk mempelajari lebih lanjut, lihat CLIPerubahan aliran udara di 2di panduan referensi Apache Airflow.
CLIPerintah yang didukung
Bagian berikut mencantumkan CLI perintah Apache Airflow yang tersedia di Amazon. MWAA
Perintah yang Didukung
Menggunakan perintah yang mengurai DAGs
Jika lingkungan Anda menjalankan Apache Airflow v1.10.12 atau v2.0.2, CLI perintah yang mengurai DAGs akan gagal jika DAG menggunakan plugin yang bergantung pada paket yang diinstal melalui: requirements.txt
Aliran Udara Apache v2.0.2
-
dags backfill
-
dags list
-
dags list-runs
-
dags next-execution
Anda dapat menggunakan CLI perintah ini jika Anda DAGs tidak menggunakan plugin yang bergantung pada paket yang diinstal melalui file. requirements.txt
Kode sampel
Bagian berikut berisi contoh berbagai cara untuk menggunakan Apache CLI Airflow.
Setel, dapatkan, atau hapus variabel Apache Airflow v2
Anda dapat menggunakan kode contoh berikut untuk mengatur, mendapatkan atau menghapus variabel dalam format<script> <mwaa env name> get | set | delete <variable> <variable value> </variable> </variable>
.
[ $# -eq 0 ] && echo "Usage: $0 MWAA environment name " && exit if [[ $2 == "" ]]; then dag="variables list" elif [ $2 == "get" ] || [ $2 == "delete" ] || [ $2 == "set" ]; then dag="variables $2 $3 $4 $5" else echo "Not a valid command" exit 1 fi CLI_JSON=$(aws mwaa --region $AWS_REGION create-cli-token --name $1) \ && CLI_TOKEN=$(echo $CLI_JSON | jq -r '.CliToken') \ && WEB_SERVER_HOSTNAME=$(echo $CLI_JSON | jq -r '.WebServerHostname') \ && CLI_RESULTS=$(curl --request POST "https://$WEB_SERVER_HOSTNAME/aws_mwaa/cli" \ --header "Authorization: Bearer $CLI_TOKEN" \ --header "Content-Type: text/plain" \ --data-raw "$dag" ) \ && echo "Output:" \ && echo $CLI_RESULTS | jq -r '.stdout' | base64 --decode \ && echo "Errors:" \ && echo $CLI_RESULTS | jq -r '.stderr' | base64 --decode
Tambahkan konfigurasi saat memicu DAG
Anda dapat menggunakan kode contoh berikut dengan Apache Airflow v1 dan Apache Airflow v2 untuk menambahkan konfigurasi saat memicu, seperti. DAG airflow trigger_dag 'dag_name' —conf '{"key":"value"}'
import boto3 import json import requests import base64 mwaa_env_name = '
YOUR_ENVIRONMENT_NAME
' dag_name = 'YOUR_DAG_NAME
' key = "YOUR_KEY
" value = "YOUR_VALUE
" conf = "{\"" + key + "\":\"" + value + "\"}" client = boto3.client('mwaa') mwaa_cli_token = client.create_cli_token( Name=mwaa_env_name ) mwaa_auth_token = 'Bearer ' + mwaa_cli_token['CliToken'] mwaa_webserver_hostname = 'https://{0}/aws_mwaa/cli'.format(mwaa_cli_token['WebServerHostname']) raw_data = "trigger_dag {0} -c '{1}'".format(dag_name, conf) mwaa_response = requests.post( mwaa_webserver_hostname, headers={ 'Authorization': mwaa_auth_token, 'Content-Type': 'text/plain' }, data=raw_data ) mwaa_std_err_message = base64.b64decode(mwaa_response.json()['stderr']).decode('utf8') mwaa_std_out_message = base64.b64decode(mwaa_response.json()['stdout']).decode('utf8') print(mwaa_response.status_code) print(mwaa_std_err_message) print(mwaa_std_out_message)
Jalankan CLI perintah di SSH terowongan ke host benteng
Contoh berikut menunjukkan cara menjalankan CLI perintah Airflow menggunakan proxy SSH terowongan ke Linux Bastion Host.
Menggunakan curl
-
ssh -D 8080 -f -C -q -N
YOUR_USER
@YOUR_BASTION_HOST
-
curl -x socks5h://0:8080 --request POST https://
YOUR_HOST_NAME
/aws_mwaa/cli --headerYOUR_HEADERS
--data-rawYOUR_CLI_COMMAND