

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

# DAG の追加と更新
<a name="configuring-dag-folder"></a>

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

**Topics**
+ [前提条件](#configuring-dag-folder-prereqs)
+ [仕組み](#configuring-dag-folder-how)
+ [何が変わったのですか?](#configuring-dag-folder-changed)
+ [Amazon MWAA CLI ユーティリティを使用した DAG のテスト](#working-dag-folder-cli-utility)
+ [Amazon S3 への DAG コードのアップロード](#configuring-dag-folder-uploading)
+ [Amazon MWAA コンソールで DAG フォルダへのパスを指定する (初回)](#configuring-dag-folder-mwaaconsole)
+ [Apache Airflow UI での変更にアクセスする](#configuring-dag-folder-mwaaconsole-view)
+ [次のステップ](#configuring-dag-folder-next-up)

## 前提条件
<a name="configuring-dag-folder-prereqs"></a>

このページのステップを完了するには、以下のものが必要です。
+ **アクセス許可** — AWS アカウント には、管理者から、ご使用の環境の [AmazonMWAAFullConsoleAccess](access-policies.md#console-full-access) アクセスコントロールポリシーへのアクセス権限が付与されている必要があります。さらに、Amazon MWAA 環境には、その環境で使用される AWS のリソースへのアクセスを [実行ロール](mwaa-create-role.md) で許可されている必要があります。
+ **アクセス** — 依存関係をウェブサーバーに直接インストールするためにパブリックリポジトリにアクセスする必要がある場合は、**パブリックネットワーク** のウェブサーバーアクセスが環境に設定されている必要があります。詳細については、[Apache Airflow のアクセスモード](configuring-networking.md) を参照してください。
+ **Amazon S3 設定** — `plugins.zip` で DAG、カスタムプラグイン、および `requirements.txt` で Python の依存関係を保存するために使用される [Amazon S3 バケット](mwaa-s3-bucket.md) は、*Public Access Blocked* と *Versioning Enabled* で構成する必要があります。

## 仕組み
<a name="configuring-dag-folder-how"></a>

有向非巡回グラフ (DAG) は、DAG の構造をコードとして定義する単一の Python ファイル内で定義されます。その構成は以下の通りである：
+ [DAG](https://airflow.apache.org/docs/stable/concepts.html#dags) の定義。
+ DAG の実行方法と実行する [タスク](https://airflow.apache.org/docs/stable/concepts.html#tasks) を説明する [オペレーター](https://airflow.apache.org/concepts.html#operators)。
+ タスクを実行する順序を記述する[オペレータ関係](https://airflow.apache.org/concepts.html#bitshift-composition)。

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

**Example DAG フォルダ**  

```
dags/
└ dag_def.py
```

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

**注記**  
DAG フォルダには `airflow.cfg` 設定ファイルを含める必要はありません。Amazon MWAA コンソールからデフォルトの Apache Airflow 設定を上書きできます。詳細については、[Amazon MWAA での Apache Airflow 設定オプションの使用](configuring-env-variables.md) を参照してください。

## 何が変わったのですか?
<a name="configuring-dag-folder-changed"></a>

特定の Apache Airflow リリースの変更を確認するには、[リリースノート](https://airflow.apache.org/docs/apache-airflow/stable/release_notes.html#release-notes) ページを参照してください。
+ Apache Airflow v3 設定: [設定リファレンス](https://airflow.apache.org/docs/apache-airflow/3.0.6/configurations-ref.html)
+ Apache Airflow v2 パブリックインターフェイス情報: [Airflow のパブリックインターフェイス](https://airflow.apache.org/docs/apache-airflow/2.10.3/public-airflow-interface.html)

## Amazon MWAA CLI ユーティリティを使用した DAG のテスト
<a name="working-dag-folder-cli-utility"></a>
+ コマンドラインインターフェイス (CLI) ユーティリティは、Amazon Managed Workflows for Apache Airflow 環境をローカルに複製します。
+ CLI は、Amazon MWAA のプロダクションイメージに似た Docker コンテナイメージをローカルでビルドします。これを使用すると、Amazon MWAA にデプロイする前に、ローカルの Apache Airflow 環境を実行して DAG、カスタムプラグイン、依存関係を開発およびテストできます。
+ CLI を実行するには、GitHub の [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) を参照してください。

## Amazon S3 への DAG コードのアップロード
<a name="configuring-dag-folder-uploading"></a>

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

### AWS CLI の使用
<a name="configuring-dag-folder-cli"></a>

AWS Command Line Interface (AWS CLI) は、コマンドラインシェルでコマンドを使用して AWS サービスとやり取りできるオープンソースツールです。このページのステップを完了するには、以下のものが必要です。
+ [AWS CLI – バージョン 2 のインストール](https://docs.aws.amazon.com/cli/latest/userguide/install-cliv2.html)
+ [AWS CLI -によるクイック設定`aws configure`](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html)

**AWS CLI を使用してアップロードするには**

1. 以下のコマンドを使って、Amazon S3 バケットをすべてリストアップします

   ```
   aws s3 ls
   ```

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

   ```
   aws s3 ls s3://YOUR_S3_BUCKET_NAME
   ```

1. 以下のコマンドは、`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 コンソールの使用
<a name="configuring-dag-folder-console"></a>

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

**Amazon S3 コンソールを使ってアップロードするには**

1. Amazon MWAA コンソールで、[環境ページ](https://console.aws.amazon.com/mwaa/home#/environments) を開きます。

1. 環境を選択します。

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

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

1. **アップロード** を選択します。

1. **ファイルの追加** を選択します。

1. `dag_def.py` のローカルコピーを選択し、**アップロード** を選択します。

## Amazon MWAA コンソールで DAG フォルダへのパスを指定する (初回)
<a name="configuring-dag-folder-mwaaconsole"></a>

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

1. Amazon MWAA コンソールで、[環境ページ](https://console.aws.amazon.com/mwaa/home#/environments) を開きます。

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

1. **編集** を選択します。

1. **Amazon S3 ペインの DAG コード** で、**DAG フォルダ** のフィールドに隣接する **S3 を参照** を選択します。

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

1. **選択** を選択します。

1. **次へ**、**環境の更新** を選択します。

## Apache Airflow UI での変更にアクセスする
<a name="configuring-dag-folder-mwaaconsole-view"></a>

Apache Airflow UI にアクセスするためには、AWS Identity and Access Management (IAM) で AWS アカウント に対して [Apache Airflow UI アクセスポリシー: AmazonMWAAWebServerAccess](access-policies.md#web-ui-access) のアクセス許可が必要です。

**Apache Airflow UI にアクセスするには**

1. Amazon MWAA コンソールで、[環境ページ](https://console.aws.amazon.com/mwaa/home#/environments) を開きます。

1. 環境を選択します。

1. **Airflow UI を開く** を選択します。

## 次のステップ
<a name="configuring-dag-folder-next-up"></a>

GitHub の [aws-mwaa-docker-images](https://github.com/aws/amazon-mwaa-docker-images) を使用して、DAG、カスタムプラグイン、Python の依存関係をローカルでテストします。