翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon Managed Workflows for Apache Airflow (MWAA) の Apache Airflow バージョン
このページでは、Amazon Apache Airflow (MWAA) がサポートする Apache Airflow のバージョンと、最新バージョンへのアップグレードを推奨する戦略について説明します。
目次
Amazon MWAA のバージョンについて
Amazon MWAA は、Apache Airflow リリースを他の一般的なバイナリおよび Python ライブラリとバンドルするコンテナイメージを構築します。イメージは、指定したバージョンに Apache Airflow ベースインストールを使用します。環境を作成するときは、使用するイメージバージョンを指定します。環境が作成されると、新しいバージョンにアップグレードするまで、指定したイメージバージョンが使用され続けます。
最新バージョン
Amazon MWAA は複数の Apache エアフローバージョンをサポートしています。環境の作成時にイメージバージョンを指定しない場合は、最新バージョンが使用されます。
Apache Airflow のバージョン
次の Apache Airflow バージョンは、Amazon Managed Workflows for Apache Airflow (MWAA) でサポートされています。
Apache Airflow バージョン | Apache のエアフローガイド | Apache のエアフローの制約 | Python バージョン |
---|---|---|---|
v2.2.2 |
|||
v2.0.2 |
|||
v1.10.12 |
Apache のエアフローコンポーネント
このセクションでは、Apache Airflow の数について説明します。スケジューラそしてワーカーAmazon MWAA の Apache Airflow の各バージョンで使用できます。
スケジューラー
Apache Airflow バージョン | スケジューラ (デフォルト) | スケジューラ (最小) | スケジューラ (最大) |
---|---|---|---|
Apache Airflow v2以上 |
2 |
2 |
5 |
Apache Airflow v1 |
1 |
1 |
1 |
ワーカー
エアフローバージョン | ワーカー (最小) | ワーカー (最大) | ワーカー (デフォルト) |
---|---|---|---|
Apache Airflow v2 |
1 |
25 |
10 |
Apache Airflow v1 |
1 |
25 |
10 |
Apache Airflow v2.2.2
このセクションでは、Amazon MWAA でサポートされている機能の概要、Apache Airflow v2.2.2 の変更点、および Apache Airflow v2.2.2 をインストールするためのリンクについて説明します。Apache Airflow リファレンスガイド。
Apache Airflow v2.2.2 でサポートされるのは何ですか
Amazon MWAA は、以下に示すすべての機能をサポートしています。Apache Airflow v2.0.2。さらに、Apache Airflow v2 以降、Amazon MWAA は Apache Airflow ウェブサーバーに Python の要件、プロバイダーパッケージ、カスタムプラグインをインストールします。
このバージョンの新機能の詳細については、Apache のエアフローの変更履歴
Apache エアフロー v2.2.2 をインストールする
次のセクションには、のチュートリアルへのリンクが含まれています。Apache Airflow リファレンスガイドApache Airflow v2.2.2 をインストールして実行します。この手順では、最初から始めてDocker エンジン
Docker に Apache Airflow v2.2.2 をインストールするには、Docker でエアフローを実行する
Apache Airflow v2.0.2
このセクションでは、Amazon MWAA でサポートされている機能の概要、Apache Airflow v1.10.12 と Apache Airflow v2.0.2 の間で変更された内容、および Apache Airflow v2.0.2 にインストールまたはアップグレードするためのリンクについて説明します。Apache Airflow リファレンスガイド。
Apache Airflow v2.0.2 でサポートされているのは何ですか
Apache のエアフロー機能 | サポート対象 | 説明 | Apache のエアフローガイド |
---|---|---|---|
高可用性 |
はい |
複数の実行が可能にスケジューラー同時実行数。 |
|
REST API の完全な |
いいえ |
お客様とサードパーティが Swagger/OpenAPI 仕様を使用して、すべての Airflow リソースに対する CRUD(作成、読み取り、更新、削除)操作にアクセスできるようにします。 |
|
スマートセンサー |
はい |
単一の長時間実行タスクをスケジュールし、バッチのステータスをチェックできますセンサータスク、およびメタデータデータベースに格納します。 |
|
TaskFlow API |
はい |
タスクを階層グループに整理し、タスク間でデータを渡したり共有したりできます。 |
|
タスクグループ |
はい |
Apache Airflow UI(SubDAG の主な目的を満たす UI グループ概念)でタスクグループを表示できます。 |
|
独立したプロバイダ |
はい |
コアの Apache Airflow ディストリビューションから分離され、個別にバージョン管理されている Airflow パッケージを使用できます。(Bash 演算子と Python 演算子は、コアディストリビューションに残ります。) |
|
簡略化された Kubernetes Executor |
いいえ |
再構築された Kubernetes Executor を使用できます。 KubernetesPodExecutor (これにより、ユーザーは個々の Kubernetes Pod としてタスクを動的に起動できます)。 |
|
UI/UX の改善 |
はい |
Apache Airflow UI に、より直感的なフロントエンドエクスペリエンスを使用できます。 |
|
Amazon MWAA でのエアフロー接続 |
はい |
Apache エアフローを使用できるようにします |
|
DAG デコレータ |
はい |
@dag または @task で関数をデコレートして、PythonOperator を使用して DAG ジェネレーター関数またはタスクインスタンスに変換できます。 |
Apache Airflow v2.0.2
次のセクションには、のチュートリアルへのリンクが含まれています。Apache Airflow リファレンスガイドApache Airflow v2.0.2 をインストールして実行します。この手順では、最初から始めてDocker エンジン
Docker に Apache Airflow v2.0.2 をインストールするには、Docker でエアフローを実行する
Apache Airflow v1.10.12
このセクションでは、Apache Airflow v1.10.12 の使用を開始する方法の概要、および Apache Airflow v1.10.12 をApache Airflow リファレンスガイド。
Apache エアフロー v1.10.12 をインストールする
次のセクションには、のチュートリアルへのリンクが含まれています。Apache Airflow リファレンスガイドApache Airflow v1.10.12 をインストールして実行します。Apache Airflow v1.10.12 をインストールするには、を参照してください。Apache エアフロー v1.10.12 のインストール
Apache Airflow のアップグレード
次のセクションには、のチュートリアルへのリンクが含まれています。Apache Airflow リファレンスガイドおよび環境をアップグレードするために推奨する手順について説明します。
現在、Amazon MWAA は、Apache Airflow バージョンの既存の環境のインプレースアップグレードをサポートしていません。Amazon MWAA 環境を最新のサポートされているリリースにアップグレードするには、新しい環境を作成し、リソースを新しい環境に移行する必要があります。
トピック
Apache Airflow v2.0.2 から Apache Airflow v2.2.2 へのアップグレード
次のセクションでは、Apache Airflow v2.0.2 環境を Apache Airflow v2.2.2 にアップグレードする方法を示しています。
-
新しい Apache Airflow v2.2.2 環境を作成します。
-
DAG、カスタムプラグイン、およびコピーする
requirements.txt
既存の v2.0.2 Amazon S3 バケットから新しい環境の Amazon S3 バケットへのリソース。-
を使用した場合
requirements.txt
ご使用の環境では、--constraint
にv2.2.2 制約現在のライブラリとパッケージが Apache Airflow v2.2.2 と互換性があることを確認します
-
-
Apache Airflow v2.2.2 以降では、Amazon MWAA が環境用にデフォルトでインストールするプロバイダーパッケージのリストが変更され、Apache Airflow ウェブサーバーに依存関係とプラグインをインストールできるようになりました。を比較するデフォルトでインストールされるプロバイダパッケージのリストApache Airflow v2.2.2 および Apache Airflow v2.0.2 で、新しい v2.2.2 環境に必要な追加パッケージを設定します。
-
新しい v2.2.2 環境を使用して DAG をテストします。
-
タスクが正常に完了したことを確認したら、v2.0.2 環境を削除します。
Apache Airflow v1 から Apache Airflow v2 へのアップグレード
次のセクションでは、Apache Airflow v1 環境を Apache Airflow v2 にアップグレードする方法を示しています。メタデータデータベースのバックアップ手順を含む、自己管理型 Apache Airflow デプロイの移行、または既存の Amazon MWAA 環境の移行の詳細については、を参照してください。Amazon MWAA 移行ガイド。
このセクションの手順では、Apache Airflow v1.10.12 の既存のコードベースから開始し、サポートされている Apache Airflow v2 マイナーバージョンのいずれかにアップグレードすることを前提としています。Apache Airflow v2 にアップグレードするには、必要な最新のサポートバージョンを使用して新しい環境を作成します。Apache エアフローの設定オプションでの DAG、Python 依存関係を変更するには、このセクションの手順に従います。requirements.txt
、およびカスタムプラグインplugins.zip
の新しいバージョンです。ワークフローを正常に移行したら、古い環境を削除できます。
-
で、Apache Airflow v1 ブリッジリリースへのアップグレード、アップグレードチェックスクリプトの実行、カスタムプラグインおよび DAG を Apache Airflow v2 に変換してテストする手順に従います。1.10 から 2 へのアップグレード
のApache Airflow リファレンスガイドそしてエアフローの更新 GitHub で。 -
import ステートメントのアップグレード。開始するには、の Apache Airflow v2 サンプルコードを確認します。でシークレットキーを使用するAWS Secrets ManagerApache エアフロー接続の場合— インポートステートメントとフック
Apache Airflow v1からApache Airflow v2に変更されました。 -
例 Apache Airflow v1
from airflow.operators.
python_operator
import PythonOperator from airflow.contrib.hooks.aws_hook import AwsHook
... hook =AwsHook()
-
例 Apache Airflow v2
from airflow.operators.
python
import PythonOperator from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
... hook =AwsBaseHook(client_type='secretsmanager')
-
-
Apache Airflow CLI スクリプトのアップグレード。開始するには、の Apache Airflow v2 CLI コマンドを確認します。bash スクリプトを使う— 関連するコマンドがサブコマンドとしてグループ化されるようになりました。たとえば、
trigger_dag
Apache Airflow v1では今あるdags trigger
Apache Airflow v2.-
例 Apache Airflow v1
# brew install jq aws mwaa create-cli-token --name YOUR_ENVIRONMENT_NAME | export CLI_TOKEN=$(jq -r .CliToken) && curl --request POST "https://YOUR_HOST_NAME/aws_mwaa/cli" \ --header "Authorization: Bearer $CLI_TOKEN" \ --header "Content-Type: text/plain" \ --data-raw "
trigger_dag
YOUR_DAG_NAME" -
例 Apache Airflow v2
# brew install jq aws mwaa create-cli-token --name YOUR_ENVIRONMENT_NAME | export CLI_TOKEN=$(jq -r .CliToken) && curl --request POST "https://YOUR_HOST_NAME/aws_mwaa/cli" \ --header "Authorization: Bearer $CLI_TOKEN" \ --header "Content-Type: text/plain" \ --data-raw "
dags trigger
YOUR_DAG_NAME"
-
-
-
Amazon Managed Workflows for Apache Airflow (MWAA) 環境を作成するサポートされている最新バージョンを使用し、DAG、カスタムプラグインを反復的に追加する
plugins.zip
、および Python の依存関係requirements.txt
ローカルでテストを完了すると、新しい環境に移行できます。-
の Apache Airflow v2 サンプルコードを使い始めるAmazon MWAA 環境での Aurora PostgreSQL データベースのクリーンアップ— Apache Airflow v1 の Apache Airflow v2 へのインポートステートメント、および Python の依存関係は
requirements.txt
変わった。-
例 Apache Airflow v1 の依存関係
apache-airflow[postgres]==
1.10.12
apache-airflow[mysql]==1.10.12
-
例 Apache Airflow v2 の依存関係
apache-airflow[postgres]==
2.0.2
apache-airflow[mysql]==2.0.2
-
例 Apache エアフロー v1 輸入
from airflow.operators.
python_operator
import PythonOperator from airflow.jobsimport BaseJob
-
例 Apache エアフロー v2 輸入
from airflow.operators.
python
import PythonOperator from airflow.jobs.base_job import BaseJob
-
-
-
すべての DAG を移行してテストした後、カスタムプラグイン
plugins.zip
、および Python の依存関係requirements.txt
新しい環境に、古い環境を削除できます。
v1 と v2 の変更点
以下は、Amazon MWAA での Apache Airflow v1 と Apache Airflow v2 の間で変更されたものの概要です。
-
新: デフォルトでハイアベイラビリティ。デフォルトでは、Apache Airflow v2 の Amazon MWAA 環境では 2 エアフローが使用されます。スケジューラーで、5 までの値を受け入れますスケジューラー。複数のスケジューラを同時に実行する方法の詳細については、を参照してください。エアフロースケジューラ
のApache Airflow リファレンスガイド。 -
新: Extra Airflow パッケージ。で指定する Python の依存関係
requirements.txt
AmazonではMWAAがApache Airflow v2で変更されました。たとえば、コアエクストラ,プロバイダーエクストラ ,ローカルにインストールされたソフトウェアエクストラ ,外部サービスエクストラ ,「その他」エクストラ ,バンドルエクストラ ,ドキュメントエクストラ , およびソフトウェアエクストラ 変わった。Amazon MWAA で Apache Airflow v2 にインストールされているパッケージのリストを表示するには、を参照してください。Amazon MWAA ローカルランナー requirements.txt
で GitHub ウェブサイト。 -
新: オペレータ、フック、およびエグゼキューター。DAG 内の import ステートメント、およびで指定したカスタムプラグイン
plugins.zip
AmazonではMWAAがApache Airflow v1とApache Airflow v2の間で変更されている。たとえば、from airflow.contrib.hooks.aws_hook import AwsHook
Apache Airflow v1はに変わったfrom airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook
Apache Airflow v2で。詳細については、次を参照してください。Python API リファレンスのApache Airflow リファレンスガイド。 -
新: プラグインのインポート。プラグインに追加されたオペレータ、センサー、フックのインポート
airflow.{operators,sensors,hooks}.<plugin_name>
のサポートは終了しました。これらの拡張機能は、通常の Python モジュールとしてインポートする必要があります。v2 以降では、DAGs ディレクトリに配置し、.airflowignoreファイルを DAG として解析されないように除外します。詳細については、次を参照してください。モジュール管理そしてカスタムオペレータの作成 のApache Airflow リファレンスガイド。 -
新: Airflow CLI コマンド構造。Apache Airflow v2 CLI は、関連するコマンドがサブコマンドとしてグループ化されるように構成されています。つまり、Apache Airflow v2 にアップグレードする場合は Apache Airflow v1 スクリプトを更新する必要があります。たとえば、
unpause
Apache Airflow v1では今あるdags unpause
Apache Airflow v2で。詳細については、次を参照してください。2 のエアフロー CLI の変更のApache Airflow リファレンスガイド。 -
変更点: エアフロー接続タイプ。デフォルトでは、Airflow UI には Apache Airflow v1 で使用可能な接続タイプのサブセットが含まれています。Amazon MWAA で Apache Airflow v2 で使用可能な接続タイプのリストを表示するには、「」を参照してください。Amazon MWAA 環境にインストールされている Apache Airflow v2 プロバイダーパッケージ。
-
既存の: エアフロー設定オプション。Apache Airflow v2 の設定オプションは、同じApache Airflow v1. ただし、バージョン 2 以降では Apache Airflow では、デフォルト値をデフォルト設定するのではなく、場合によってはコンフィギュレーション値の明示的な指定が必要です。詳細については、次を参照してください。エアフロー設定オプション
のApache Airflow リファレンスガイド。