Apache Airflow CLI コマンドリファレンス - Amazon Managed Workflows for Apache Airflow

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

Apache Airflow CLI コマンドリファレンス

このページでは、Apache Airflow 用の Amazon マネージドワークフローでサポートされている Apache Airflow CLI コマンドとサポートされていない Apache Airflow CLI コマンドについて説明します。

前提条件

以下のセクションでは、このページのコマンドとスクリプトを使用するために必要な準備手順について説明します。

アクセス

AWS CLI

AWS Command Line Interface (AWS CLI) は、コマンドラインシェルのコマンドを使用して AWS サービスとやり取りできるオープンソースツールです。このページのステップを完了するには、以下のものが必要です。

v2 での変更点

  • 新規:エアフロー CLI コマンド構造。Apache Airflow v2 CLI は、関連するコマンドがサブコマンドとしてグループ化されるように設定されています。つまり、Apache Airflow v2 にアップグレードする場合は、Apache Airflow v1 スクリプトを更新する必要があります。例えば、Apache Airflow v1 unpause は、Apache Airflow v2では dags unpause になりました。詳細については、Apache Airflow リファレンスガイドの 「2 におけるエアフロー CLI の変更点」 を参照してください。

サポート済みの CLI コマンド

以下のセクションでは、Amazon MWAA で使用できる Apache Airflow CLI コマンドの一覧を表示しています。

サポートされているコマンド

Apache Airflow v2
マイナーバージョン Command

v2.0+

チートシート

v2.0+

接続を追加する

v2.0+

接続を削除する

「v2.2+ (注)」

「dags バックフィル」

v2.0+

「dags 削除」

「v2.2+ (注)」

「dags リスト」

v2.0+

「dags リスト-ジョブ」

バージョン 2.6 以降

dags list-import-errors

「v2.2+ (注)」

「dags リスト-ラン」

「v2.2+ (注)」

「dags 次回の実行」

v2.0+

「dags 一時停止」

v2.0+

「dags レポート」

バージョン 2.4 以降

「dags リシリアライズ」

v2.0+

「dags 表示」

v2.0+

「dags 状態」

v2.0+

「dags テスト」

v2.0+

「dags トリガー」

v2.0+

「dags 一時停止解除」

バージョン 2.4 以降

「DB クリーン」

v2.0+

「プロバイダーの行動」

v2.0+

「プロバイダー取得」

v2.0+

「プロバイダーフック」

v2.0+

「プロバイダーリンク」

v2.0+

「プロバイダーリスト」

v2.8 以降

プロバイダーの通知

バージョン 2.6 以降

「プロバイダーの秘密」

v2.7+

「プロバイダートリガー」

v2.0+

「プロバイダーウィジェット」

バージョン 2.6 以降

「ロールアドパーマ」

バージョン 2.6 以降

「ロールの役割」

バージョン 2.6 以降

ロールの作成

v2.0+

ロールリスト

v2.0+

「タスククリア」

v2.0+

「タスク失敗-DEPS」

v2.0+

タスクリスト

v2.0+

「タスクレンダー」

v2.0+

タスク状態

v2.0+

タスク states-for-dag-run

v2.0+

タスクテスト

v2.0+

変数を削除する

v2.0+

変数を取得する

v2.0+

変数を取得する

v2.0+

「変数リスト」

v2.0+

バージョン

DAGs を解析するコマンドを使用する

環境が Apache Airflow v1.10.12 または v2.0.2 を実行している場合、DAGs が を介してインストールされたパッケージに依存するプラグインを使用すると、DAG を解析する CLI コマンドは失敗しますrequirements.txt

Apache Airflow v2.0.2
  • dags backfill

  • dags list

  • dags list-runs

  • dags next-execution

DAG が requirements.txt を介してインストールされたパッケージに依存するプラグインを使用していない場合は、次の CLI コマンドを使用できます。

「サンプルコード」

次のセクションには、Apache Airflow CLI を使用する各種方法の例が含まれています。

Apache Airflow v2 変数を設定、取得、または削除します。

次のサンプルコードを使用して、WWH 形式で変数を設定、取得、または削除できます<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

DAG をトリガーするときに設定を追加します。

Apache Airflow v1 および Apache Airflow v2 で次のサンプル コードを使用すると、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)

拠点ホストへの SSH 踏み台ホストで CLI コマンドを実行します

次の例は、Linux 踏み台ホストトへの SSH トンネルプロキシを使用して Airflow CLI コマンドを実行する方法を示しています。

curl を使用
  1. ssh -D 8080 -f -C -q -N YOUR_USER@YOUR_BASTION_HOST
  2. curl -x socks5h://0:8080 --request POST https://YOUR_HOST_NAME/aws_mwaa/cli --header YOUR_HEADERS --data-raw YOUR_CLI_COMMAND

GitHub および AWS チュートリアルのサンプル