

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

# Amazon MWAA での Apache Airflow 設定オプションの使用
<a name="configuring-env-variables"></a>

Apache Airflow 設定オプションは、Amazon Managed Workflows for Apache Airflow 環境に環境変数としてアタッチできます。推奨ドロップダウンリストから選択するか、Amazon MWAA コンソールでお使いの Apache Airflow バージョンに合わせてカスタム設定オプションを指定できます。このトピックでは、使用可能な Apache Airflow 設定オプションと、これらのオプションを使用して環境の Apache Airflow 設定を上書きする方法について説明します。

**Contents**
+ [前提条件](#configuring-env-variables-prereqs)
+ [仕組み](#configuring-env-variables-how)
+ [設定オプションを使用してプラグインをロードする](#configuring-2.0-airflow-override)
+ [設定オプションの概要](#configuring-env-variables-customizing)
  + [Apache Airflow 設定オプション](#configuring-env-variables-airflow-ref)
  + [Apache エアフローリファレンス](#configuring-env-variables-reference-options)
  + [Amazon MWAA コンソールの使用](#configuring-env-variables-console-add)
+ [設定リファレンス](#configuring-env-variables-reference)
  + [電子メールの設定](#configuring-env-variables-email)
  + [タスクの設定](#configuring-env-variables-tasks)
  + [スケジューラーの設定](#configuring-env-variables-scheduler)
  + [ワーカーの設定](#configuring-env-variables-workers)
  + [ウェブサーバーの設定](#configuring-env-variables-webserver)
  + [トリガー設定](#configuring-env-variables-webserver)
+ [例とサンプルコード](#configuring-env-variables-code)
  + [DAG の例](#configuring-env-variables-dag)
  + [電子メール通知の設定例](#configuring-env-variables-email)
+ [次のステップ](#configuring-env-variables-next-up)

## 前提条件
<a name="configuring-env-variables-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-env-variables-how"></a>

環境を作成すると、Amazon MWAAはAmazon MWAAコンソールで指定した設定を **Airflow 設定オプション** として指定し、それをのコンテナのAWS Fargate環境変数にアタッチします。`airflow.cfg` で同じ名前の設定を使用している場合は、Amazon MWAA コンソールで指定するオプションのほうが、`airflow.cfg` の値よりも優先されます。

デフォルトでは、Amazon MWAA 環境の Apache Airflow UI で `airflow.cfg` を公開しませんが設定を公開するための `webserver.expose_config` の設定など、Amazon MWAA コンソールで直接 Apache Airflow 設定オプションを変更できます。

## 設定オプションを使用してプラグインをロードする
<a name="configuring-2.0-airflow-override"></a>

Apache Airflow v2 のデフォルトでは、プラグインは設定を使用して「遅延的に」ロードされるように `core.lazy_load_plugins : True` 設定されています。カスタムプラグインを使用している場合は、Apache Airflow 設定オプションとして `core.lazy_load_plugins : False` を追加し、各 Airflow プロセスの開始時にプラグインをロードしてデフォルト設定を上書きする必要があります。

## 設定オプションの概要
<a name="configuring-env-variables-customizing"></a>

Amazon MWAA コンソールで設定を追加すると、Amazon MWAA はその設定を環境変数として書き込みます。
+ **リストされたオプション。**ドロップダウンリストで、お使いの Apache Airflow バージョンで使用可能な設定のいずれかを選択できます。例えば、`dag_concurrency` : `16` です。その設定は、環境のFargateコンテナに `AIRFLOW__CORE__DAG_CONCURRENCY : 16` として反映されます。
+ **カスタムオプション**。お使いの Apache Airflow バージョンにはない Airflow 設定オプションをドロップダウンリストに指定することもできます。例えば、`foo.user` : `YOUR_USER_NAME` です。その設定は、環境のFargateコンテナに `AIRFLOW__FOO__USER : YOUR_USER_NAME` として反映されます。

### Apache Airflow 設定オプション
<a name="configuring-env-variables-airflow-ref"></a>

以下の画像は、Amazon MWAA コンソールで **Apache Airflow 設定オプション** をカスタマイズできる場所を示しています。

![この画像は、Amazon MWAA コンソールの Apache Airflow 設定オプション をカスタマイズできる場所を示しています。](http://docs.aws.amazon.com/ja_jp/mwaa/latest/userguide/images/mwaa-console-airflow-config.png)


### Apache エアフローリファレンス
<a name="configuring-env-variables-reference-options"></a>

Apache Airflow でサポートされている設定オプションのリストについては、*Apache Airflow リファレンスガイド* の [設定リファレンス](https://airflow.apache.org/docs/apache-airflow/stable/configurations-ref.html) を参照してください。Amazon MWAA で実行している Apache Airflow のバージョンのオプションにアクセスするには、ドロップダウンリストからバージョンを選択します。

### Amazon MWAA コンソールの使用
<a name="configuring-env-variables-console-add"></a>

以下の手順では、Airflow 設定オプションを環境に追加するステップを説明します。

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

1. 環境を選択します。

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

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

1. **Airflow 設定オプション** ペインで **カスタム設定を追加** を選択します。

1. ドロップダウンリストから設定を選択して値を入力するか、カスタム設定を入力して値を入力します。

1. 追加する設定ごとに **カスタム設定を追加** を選択します。

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

## 設定リファレンス
<a name="configuring-env-variables-reference"></a>

以下のセクションでは、Amazon MWAA コンソールのドロップダウンリストに利用可能な Apache Airflow 設定のリストが表示されます。

### 電子メールの設定
<a name="configuring-env-variables-email"></a>

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA で使用できる Airflow E メール通知設定オプションを示しています。

SMTP トラフィックにはポート 587 を使用することをお勧めします。デフォルトでは、すべての Amazon EC2 インスタンスのポート 25 でのアウトバウンド SMTP トラフィックをAWSブロックします。ポート 25 でアウトバウンド・トラフィックを送信したい場合は、[この制限を解除するようリクエストする](https://aws.amazon.com/premiumsupport/knowledge-center/ec2-port-25-throttle/) ことができます。


| エアフロー設定のオプション | 説明 | 値の例 | 
| --- | --- | --- | 
|  email.email\_backend  |  [email\_backend ](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#email-backend)のメール通知に使用される Apache エアフローユーティリティ。  |  airflow.utils.email.send\_email\_smtp  | 
|  smtp.smtp\_host  |  [smtp\_host](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#smtp-host) の電子メールアドレスに使用される送信サーバーの名前。  |  localhost  | 
|  smtp.smtp\_starttls  |  Transport Layer Security (TLS) は、[smtp\_starttls](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#smtp-starttls) でインターネットの E メールの暗号化に使用されます。  |  誤  | 
|  smtp.smtp\_ssl  |  セキュアソケットレイヤー (SSL) は、[smtp\_ssl](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#smtp-ssl) でサーバーとメールクライアントを接続するために使用されます。  |  正  | 
|  smtp.smtp\_port  |  [smtp\_port](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#smtp-port)でサーバに指定されたTransmission Control Protocol (TCP)。  |  587  | 
|  smtp.smtp\_mail\_from  |  [smtp\_mail\_from](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#smtp-mail-from) にあるアウトバウンドメールアドレス。  |  myemail@domain.com  | 

### タスクの設定
<a name="configuring-env-variables-tasks"></a>

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA の Airflow タスクのドロップダウンリストで使用できる設定を示しています。


| エアフロー設定のオプション | 説明 | 値の例 | 
| --- | --- | --- | 
|  core.default\_task\_retries  |  Apache エアフロータスクを [default\_task\_retries](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#default-task-retries) でリトライする回数。  |  3  | 
|  core.parallelism  |  環境全体で同時に実行できるタスクインスタンスの最大数 ([parallel 処理](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#parallelism))。  |  40  | 

### スケジューラーの設定
<a name="configuring-env-variables-scheduler"></a>

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA のドロップダウンリストで使用できる Apache Airflow スケジューラー設定を示しています。


| エアフロー設定のオプション | 説明 | 値の例 | 
| --- | --- | --- | 
|  scheduler.catchup\_by\_default  |  [catchup\_by\_default](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#catchup-by-default) の特定の時間間隔に「追いつく」ための DAG 実行を作成するようにスケジューラーに指示します。  |  誤  | 
|  scheduler.scheduler\_zombie\_task\_threshold  Apache Airflow v3 では使用できません。   |  タスクインスタンスを障害としてマークし、[scheduler\_zombie\_task\_threshold](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#scheduler-zombie-task-threshold) 内のタスクを再スケジュールするかどうかをスケジューラーに指示します。  |  300  | 

### ワーカーの設定
<a name="configuring-env-variables-workers"></a>

次のリストは、Apache Airflow v2 および v3 の Amazon MWAA のドロップダウンリストで使用できる Airflow ワーカー設定を示しています。


| エアフロー設定のオプション | 説明 | 値の例 | 
| --- | --- | --- | 
|  celery.worker\_autoscale  |  [worker\_autoscale](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#worker-autoscale) の [Celery Executor](https://airflow.apache.org/docs/apache-airflow/2.0.2/executor/celery.html) を使用するすべてのワーカーで同時に実行できるタスクの最大数と最小数。値は次の順序でカンマで区切る必要があります:`max_concurrency,min_concurrency`  |  16、12  | 

### ウェブサーバーの設定
<a name="configuring-env-variables-webserver"></a>

次のリストには、Apache Airflow v2 および v3 用の Amazon MWAA のドロップダウンリストで使用できる Apache Airflow ウェブサーバーの設定が表示されます。


| エアフロー設定のオプション | 説明 | 値の例 | 
| --- | --- | --- | 
|  webserver.default\_ui\_timezone  Apache Airflow v3 では使用できません。   |  [default\_ui\_timezone](https://airflow.apache.org/docs/apache-airflow/2.0.2/configurations-ref.html#default-ui-timezone) の Apache Airflow UI のデフォルト日時設定。  この`default_ui_timezone`オプションを設定しても、DAG の実行がスケジュールされているタイムゾーンは変更されません。DAG のタイムゾーンを変更するには、カスタムプラグインを使用できます。詳細については、[Amazon MWAA での DAG のタイムゾーンの変更](samples-plugins-timezone.md) を参照してください。   |  America/New\_York  | 

### トリガー設定
<a name="configuring-env-variables-webserver"></a>

以下のリストは、Apache Airflow v2 および v3 の Amazon MWAA で使用可能な Apache Airflow [トリガー](https://airflow.apache.org/docs/apache-airflow/stable/authoring-and-scheduling/deferring.html) 設定を示しています。


| エアフロー設定のオプション | 説明 | 値の例 | 
| --- | --- | --- | 
|  mwaa.triggerer\_enabled  |  Amazon MAA でトリガーをアクティブ化および非アクティブ化するために使用されます。デフォルトではこの値は `True` に設定されます。`False`に設定すると、Amazon MWAA はスケジューラーのトリガープロセスを開始しません。  |  正  | 
|  triggerer.default\_capacity (v2 の場合) triggerer.capacity (v3 の場合)  |  各トリガーで parallel に実行できる、トリガーの数を定義します。Amazon MWAA では、両方のコンポーネントが互いに並行して実行されるため、この容量はトリガーごととスケジューラーごとに設定されます。デフォルトのスケジューラあたりの値は、それぞれ small、medium と large、xlarge、2xlarge のインスタンスに対して `60`、`125`、`250`、`500`、および `1000` に設定されています。  |  125  | 

## 例とサンプルコード
<a name="configuring-env-variables-code"></a>

### DAG の例
<a name="configuring-env-variables-dag"></a>

次の DAG を使用して `email_backend` Apache Airflow 設定オプションを印刷できます。Amazon MWAA イベントに応答して実行するには、Amazon S3 ストレージバケットにある環境の DAG フォルダにコードをコピーします。

```
from airflow.decorators import dag
				from datetime import datetime
				
				def print_var(**kwargs):
				email_backend = kwargs['conf'].get(section='email', key='email_backend')
				print("email_backend")
				return email_backend
				
				@dag(
				dag_id="print_env_variable_example",
				schedule_interval=None,     
				start_date=datetime({{yyyy}}, {{m}}, {{d}}),
				catchup=False,
				)
				def print_variable_dag():
				email_backend_test = PythonOperator(
				task_id="email_backend_test",
				python_callable=print_var,
				provide_context=True
				)
				
				print_variable_test = print_variable_dag()
```

### 電子メール通知の設定例
<a name="configuring-env-variables-email"></a>

アプリパスワードを使用する Gmail.com メールアカウントには、次の Apache Airflow 設定オプションを使用できます。詳しくは、*Gmail ヘルプリファレンスガイド* の [アプリパスワードを使用してログインする](https://support.google.com/mail/answer/185833?hl=en-GB) を参照してください。

![この画像は、MWAA コンソールの Apache Airflow 設定オプションを使用して gmail.com メールアカウントを設定する方法を示しています。](http://docs.aws.amazon.com/ja_jp/mwaa/latest/userguide/images/mwaa-console-config-email-configuration.png)


## 次のステップ
<a name="configuring-env-variables-next-up"></a>
+ [DAG の追加と更新](configuring-dag-folder.md)で、DAG フォルダを Amazon S3 バケットにアップロードする方法について説明します。