本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
在 Amazon MWAA 上使用 Apache Airflow 組態選項
Apache Airflow 組態選項可以做為環境變數連接至 Amazon Managed Workflows for Apache Airflow 環境。您可以從建議的下拉式清單中選擇,或在 Amazon MWAA 主控台上指定 Apache Airflow 版本的自訂組態選項。本主題說明可用的 Apache Airflow 組態選項,以及如何使用這些選項來覆寫您環境中的 Apache Airflow 組態設定。
內容
先決條件
您將需要下列項目,才能完成此頁面上的步驟。
-
許可 — AWS 您的管理員必須已授予您的帳戶存取您環境的 AmazonMWAAFullConsoleAccess 存取控制政策。此外,您的執行角色必須允許您的 Amazon MWAA 環境,才能存取您的環境所使用的 AWS 資源。
-
存取 — 如果您需要存取公有儲存庫,才能直接在 Web 伺服器上安裝相依性,您的環境必須設定公有網路 Web 伺服器存取。如需詳細資訊,請參閱Apache Airflow 存取模式。
-
Amazon S3 組態 — 用於在 中存放 DAGs、自訂外掛程式
plugins.zip
和 Python 相依性的 Amazon S3 儲存貯體requirements.txt
必須設定為已啟用公開存取封鎖和版本控制。
運作方式
當您建立環境時,Amazon MWAA 會將您在 Airflow 組態選項中的 Amazon MWAA 主控台上指定的組態設定,做為環境變數連接至您環境的 AWS Fargate 容器。如果您在 中使用相同名稱的設定airflow.cfg
,則您在 Amazon MWAA 主控台上指定的選項會覆寫 中的值airflow.cfg
。
雖然我們預設不會在 Amazon MWAA 環境的 Apache Airflow UI airflow.cfg
中公開 ,但您可以直接在 Amazon MWAA 主控台上變更 Apache Airflow 組態選項,包括webserver.expose_config
公開組態的設定。
使用組態選項載入 Apache Airflow v2 中的外掛程式
在 Apache Airflow v2 中,外掛程式預設為使用 core.lazy_load_plugins : True
設定「短暫」載入。如果您在 Apache Airflow v2 中使用自訂外掛程式,則必須新增 core.lazy_load_plugins : False
做為 Apache Airflow 組態選項,才能在每個 Airflow 程序開始時載入外掛程式,以覆寫預設設定。
組態選項概觀
當您在 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 組態選項
下圖顯示您可以在 Amazon MWAA 主控台上自訂 Apache Airflow 組態選項的位置。

Apache Airflow 參考
如需 Apache Airflow 支援的組態選項清單,請參閱《Apache Airflow 參考指南》中的組態
使用 Amazon MWAA 主控台
下列程序會逐步引導您將 Airflow 組態選項新增至環境。
-
在 Amazon MWAA 主控台上開啟環境頁面
。 -
選擇環境。
-
選擇編輯。
-
選擇 Next (下一步)。
-
在 Airflow 組態選項窗格中選擇新增自訂組態。
-
從下拉式清單中選擇組態並輸入值,或輸入自訂組態並輸入值。
-
針對您要新增的每個組態,選擇新增自訂組態。
-
選擇 Save (儲存)。
組態參考
下一節包含 Amazon MWAA 主控台下拉式清單中可用 Apache Airflow 組態的清單。
電子郵件組態
下列清單顯示 Amazon MWAA 上可用的 Airflow 電子郵件通知組態選項。
我們建議將連接埠 587 用於 SMTP 流量。根據預設, 會 AWS 封鎖所有 Amazon EC2 執行個體連接埠 25 上的傳出 SMTP 流量。如果您想要在連接埠 25 上傳送傳出流量,您可以請求移除此限制
任務組態
下列清單顯示 Amazon MWAA 上 Airflow 任務下拉式清單中可用的組態。
排程器組態
下列清單顯示 Amazon MWAA 下拉式清單中可用的 Apache Airflow 排程器組態。
工作者組態
下列清單顯示 Amazon MWAA 下拉式清單中可用的 Airflow 工作者組態。
Web 伺服器組態
下列清單顯示 Amazon MWAA 下拉式清單中可用的 Airflow Web 伺服器組態。
觸發器組態
下列清單顯示 Amazon MWAA 上可用的 Apache Airflow 觸發器
範例和範例程式碼
範例 DAG
您可以使用下列 DAG 來列印 email_backend
Apache Airflow 組態選項。若要執行 以回應 Amazon MWAA 事件,請將程式碼複製到 Amazon S3 儲存貯體上的環境 DAGs 資料夾。
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()
電子郵件通知設定範例
下列 Apache Airflow 組態選項可用於使用應用程式密碼的 Gmail.com 電子郵件帳戶。如需詳細資訊,請參閱 Gmail 說明參考指南中的使用應用程式密碼登入

後續步驟?
-
了解如何在 中將 DAG 資料夾上傳至 Amazon S3 儲存貯體新增或更新 DAGs。