DAG の追加と更新 - Amazon Managed Workflows for Apache Airflow

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

DAG の追加と更新

有向非巡回グラフ (DAG) は、DAG の構造をコードとして定義する Python ファイル内で定義されます。 AWS CLI または Amazon S3 コンソールを使用して、環境に DAGsをアップロードできます。このトピックでは、Amazon S3 バケットの dagsフォルダを使用して、Amazon Managed Workflows for Apache Airflow 環境で Apache Airflow DAGs を追加または更新する手順について説明します。

前提条件

このページのステップを完了するには、以下のものが必要です。

  • アクセス許可 — 環境の AmazonMWAAFullConsoleAccess アクセスコントロールポリシーへのアクセス権が管理者から付与されている AWS アカウント 必要があります。さらに、Amazon MWAA 環境は、環境で使用される AWS リソースにアクセスするために実行ロールによって許可されている必要があります。

  • アクセス — ウェブサーバーに直接依存関係をインストールするためにパブリックリポジトリへのアクセスが必要な場合は、環境をパブリックネットワークウェブサーバーアクセスで設定する必要があります。詳細については、「Apache Airflow のアクセスモード」を参照してください。

  • Amazon S3 設定plugins.zip で DAG、カスタムプラグイン、および requirements.txt で Python の依存関係を保存するために使用される Amazon S3 バケットは、Public Access Blocked と Versioning Enabledで構成する必要があります。

仕組み

有向非巡回グラフ (DAG) は、DAG の構造をコードとして定義する単一の Python ファイル内で定義されます。その構成は以下の通りである:

Amazon MWAA 環境で Apache Airflow プラットフォームを実行するには、DAG 定義をストレージバケット内の dags フォルダにコピーする必要があります。たとえば、ストレージバケットの DAG フォルダは次のようになります。

例 DAG フォルダー
dags/ └ dag_def.py

Amazon MWAA は、Amazon S3 バケットの新規オブジェクトと変更されたオブジェクトを 30 秒ごとに Amazon MWAA スケジューラとワーカーコンテナの /usr/local/airflow/dags フォルダに自動的に同期し、ファイルタイプに関係なく Amazon S3 ソースのファイル階層を維持します。新しい DAGs が Apache Airflow UI にリストされるまでにかかる時間は、 によって制御されますscheduler.dag_dir_list_interval。既存の DAG への変更は、次の DAG 処理ループ で取り込まれます。

注記

DAG フォルダーには airflow.cfg 設定ファイルを含める必要はありません。Amazon MWAA コンソールからデフォルトの Apache Airflow 設定を上書きできます。詳細については、「Amazon MWAA での Apache Airflow 構成オプションの使用」を参照してください。

変更点

特定の Apache Airflow リリースの変更を確認するには、「リリースノート」ページを参照してください。

Amazon MWAA CLI ユーティリティを使用した DAG のテスト

  • コマンドラインインターフェイス (CLI) ユーティリティは、Amazon Managed Workflows for Apache Airflow 環境をローカルに複製します。

  • CLI は、Amazon MWAA のプロダクションイメージに似た Docker コンテナイメージをローカルでビルドします。これにより、Amazon MWAA にデプロイする前に、ローカルの Apache Airflow 環境を実行して DAG、カスタムプラグイン、依存関係を開発およびテストできます。

  • CLI を実行するには、GitHub の aws-mwaa-docker-images を参照してください。

Amazon S3 への DAG コードのアップロード

Amazon S3 コンソールまたは AWS Command Line Interface (AWS CLI) を使用して、Amazon S3 バケットに DAG コードをアップロードできます。以下の手順では、コード(.py)をAmazon S3バケット内の dags という名前のフォルダーにアップロードすることを前提としています。

の使用 AWS CLI

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

を使用してアップロードするには AWS CLI
  1. 以下のコマンドを使って、Amazon S3 バケットをすべてリストアップします

    aws s3 ls
  2. 以下のコマンドを使用して、ご使用の環境の Amazon S3 バケット内のファイルとフォルダを一覧表示します。

    aws s3 ls s3://YOUR_S3_BUCKET_NAME
  3. 以下のコマンドは、dag_def.py ファイルを dags フォルダにアップロードします。

    aws s3 cp dag_def.py s3://amzn-s3-demo-bucket/dags/

    Amazon S3 バケットに dags という名前のフォルダがまだ存在しない場合、このコマンドは dags フォルダを作成し、新しいフォルダに名前が dag_def.py のファイルをアップロードします。

Amazon S3 コンソールの使用

Amazon S3 コンソールは、Amazon S3 バケット内のリソースを作成および管理できるウェブベースのユーザーインターフェイスです。以下の手順では、DAGs フォルダーが dags という名前であると仮定しています。

Amazon S3 コンソールを使ってアップロードするには
  1. Amazon MWAA コンソールで、環境ページを開きます。

  2. 環境を選択します。

  3. S3 ペインの DAG コードで S3 バケットリンクを選択して、コンソールでストレージバケットを開きます。 S3

  4. dags フォルダを選択します。

  5. [アップロード] を選択します。

  6. [ファイルの追加] を選択します。

  7. dag_def.py のローカルコピーを選択し、[アップロード] を選択します。

Amazon MWAA コンソールで DAG フォルダへのパスを指定する (初回)

以下の手順では、dags という名前の Amazon S3 バケット上のフォルダへのパスを指定していると仮定します。

  1. Amazon MWAA コンソールで、環境ページを開きます。

  2. DAG を実行する環境を選択します。

  3. [編集] を選択します。

  4. Amazon S3 ペインの DAG コードでDAG フォルダフィールドの横にある S3 を参照を選択します。

  5. dags フォルダを選択します。

  6. [選択] を選択します。

  7. [次へ][環境の更新] を選択します。

Apache Airflow UI の変更へのアクセス

Apache Airflow UI にアクセスするには、 AWS アカウント in AWS Identity and Access Management (IAM) のアクセスApache Airflow UI アクセスポリシー: AmazonMWAAWebServerAccess許可が必要です。

Apache Airflow UI にアクセスするには
  1. Amazon MWAA コンソールで、環境ページを開きます。

  2. 環境を選択します。

  3. [Airflow UI を開く] を選択します。

次のステップ

GitHub DAGs、カスタムプラグイン、Python 依存関係をローカルでテストします。 aws-mwaa-docker-images