Amazon Managed Workflows for Apache Airflow (MWAA) の Apache Airflow バージョン - Amazon Managed Workflows for Apache Airflow

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

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 のエアフローコンポーネント

このセクションでは、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 Airflow のドキュメントウェブサイトを参照してください。

Apache エアフロー v2.2.2 をインストールする

次のセクションには、のチュートリアルへのリンクが含まれています。Apache Airflow リファレンスガイドApache Airflow v2.2.2 をインストールして実行します。この手順では、最初から始めてDocker エンジンそしてDocker Composeローカルにインストールされています。

Docker に Apache Airflow v2.2.2 をインストールするには、Docker でエアフローを実行するApache Airflow リファレンスガイド

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(作成、読み取り、更新、削除)操作にアクセスできるようにします。

AirFlow のREST API

スマートセンサー

はい

単一の長時間実行タスクをスケジュールし、バッチのステータスをチェックできますセンサータスク、およびメタデータデータベースに格納します。

スマートセンサー

TaskFlow API

はい

タスクを階層グループに整理し、タスク間でデータを渡したり共有したりできます。

TaskFlow API

タスクグループ

はい

Apache Airflow UI(SubDAG の主な目的を満たす UI グループ概念)でタスクグループを表示できます。

タスクグループ

独立したプロバイダ

はい

コアの Apache Airflow ディストリビューションから分離され、個別にバージョン管理されている Airflow パッケージを使用できます。(Bash 演算子と Python 演算子は、コアディストリビューションに残ります。)

プロバイダーパッケージ

簡略化された Kubernetes Executor

いいえ

再構築された Kubernetes Executor を使用できます。 KubernetesPodExecutor (これにより、ユーザーは個々の Kubernetes Pod としてタスクを動的に起動できます)。

Kubernetes エグゼキュター

UI/UX の改善

はい

Apache Airflow UI に、より直感的なフロントエンドエクスペリエンスを使用できます。

エアフローUI

Amazon MWAA でのエアフロー接続

はい

Apache エアフローを使用できるようにしますconnections addそしてconnections deleteCLI コマンド。詳細については、「Apache Airflow CLI コマンドリファレンス」を参照してください。

Command Line Interface

DAG デコレータ

はい

@dag または @task で関数をデコレートして、PythonOperator を使用して DAG ジェネレーター関数またはタスクインスタンスに変換できます。

DAG デコレータ

Apache Airflow v2.0.2

次のセクションには、のチュートリアルへのリンクが含まれています。Apache Airflow リファレンスガイドApache Airflow v2.0.2 をインストールして実行します。この手順では、最初から始めてDocker エンジンそしてDocker Composeローカルにインストールされています。

Docker に Apache Airflow v2.0.2 をインストールするには、Docker でエアフローを実行するApache Airflow リファレンスガイド

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 のアップグレード

次のセクションには、のチュートリアルへのリンクが含まれています。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 にアップグレードする方法を示しています。

  1. 新しい Apache Airflow v2.2.2 環境を作成します。

  2. DAG、カスタムプラグイン、およびコピーするrequirements.txt既存の v2.0.2 Amazon S3 バケットから新しい環境の Amazon S3 バケットへのリソース。

    1. を使用した場合requirements.txtご使用の環境では、--constraintv2.2.2 制約現在のライブラリとパッケージが Apache Airflow v2.2.2 と互換性があることを確認します

  3. Apache Airflow v2.2.2 以降では、Amazon MWAA が環境用にデフォルトでインストールするプロバイダーパッケージのリストが変更され、Apache Airflow ウェブサーバーに依存関係とプラグインをインストールできるようになりました。を比較するデフォルトでインストールされるプロバイダパッケージのリストApache Airflow v2.2.2 および Apache Airflow v2.0.2 で、新しい v2.2.2 環境に必要な追加パッケージを設定します。

  4. 新しい v2.2.2 環境を使用して DAG をテストします。

  5. タスクが正常に完了したことを確認したら、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の新しいバージョンです。ワークフローを正常に移行したら、古い環境を削除できます。

  1. で、Apache Airflow v1 ブリッジリリースへのアップグレード、アップグレードチェックスクリプトの実行、カスタムプラグインおよび DAG を Apache Airflow v2 に変換してテストする手順に従います。1.10 から 2 へのアップグレードApache Airflow リファレンスガイドそしてエアフローの更新GitHub で。

    1. import ステートメントのアップグレード。開始するには、の Apache Airflow v2 サンプルコードを確認します。でシークレットキーを使用するAWS Secrets ManagerApache エアフロー接続の場合— インポートステートメントとフックApache Airflow v1からApache Airflow v2に変更されました。

      1. 例 Apache Airflow v1

        from airflow.operators.python_operator import PythonOperator from airflow.contrib.hooks.aws_hook import AwsHook ... hook = AwsHook()
      2. 例 Apache Airflow v2

        from airflow.operators.python import PythonOperator from airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHook ... hook = AwsBaseHook(client_type='secretsmanager')
    2. Apache Airflow CLI スクリプトのアップグレード。開始するには、の Apache Airflow v2 CLI コマンドを確認します。bash スクリプトを使う— 関連するコマンドがサブコマンドとしてグループ化されるようになりました。たとえば、trigger_dagApache Airflow v1では今あるdags triggerApache Airflow v2.

      1. 例 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"
      2. 例 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"
  2. Amazon Managed Workflows for Apache Airflow (MWAA) 環境を作成するサポートされている最新バージョンを使用し、DAG、カスタムプラグインを反復的に追加するplugins.zip、および Python の依存関係requirements.txtローカルでテストを完了すると、新しい環境に移行できます。

    1. の Apache Airflow v2 サンプルコードを使い始めるAmazon MWAA 環境での Aurora PostgreSQL データベースのクリーンアップ— Apache Airflow v1 の Apache Airflow v2 へのインポートステートメント、および Python の依存関係はrequirements.txt変わった。

      1. 例 Apache Airflow v1 の依存関係

        apache-airflow[postgres]==1.10.12 apache-airflow[mysql]==1.10.12
      2. 例 Apache Airflow v2 の依存関係

        apache-airflow[postgres]==2.0.2 apache-airflow[mysql]==2.0.2
      3. 例 Apache エアフロー v1 輸入

        from airflow.operators.python_operator import PythonOperator from airflow.jobs import BaseJob
      4. 例 Apache エアフロー v2 輸入

        from airflow.operators.python import PythonOperator from airflow.jobs.base_job import BaseJob
  3. すべての 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.txtAmazonではMWAAがApache Airflow v2で変更されました。たとえば、コアエクストラ,プロバイダーエクストラ,ローカルにインストールされたソフトウェアエクストラ,外部サービスエクストラ,「その他」エクストラ,バンドルエクストラ,ドキュメントエクストラ, およびソフトウェアエクストラ変わった。Amazon MWAA で Apache Airflow v2 にインストールされているパッケージのリストを表示するには、を参照してください。Amazon MWAA ローカルランナーrequirements.txtで GitHub ウェブサイト。

  • 新: オペレータ、フック、およびエグゼキューター。DAG 内の import ステートメント、およびで指定したカスタムプラグインplugins.zipAmazonではMWAAがApache Airflow v1とApache Airflow v2の間で変更されている。たとえば、from airflow.contrib.hooks.aws_hook import AwsHookApache Airflow v1はに変わったfrom airflow.providers.amazon.aws.hooks.base_aws import AwsBaseHookApache 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 スクリプトを更新する必要があります。たとえば、unpauseApache Airflow v1では今あるdags unpauseApache 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 リファレンスガイド