本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon MWAA 上使用 Apache Airflow 配置选项
Apache Airflow 配置选项可以作为环境变量附加到 Amazon MWAA 环境中。您可以从建议的下拉列表中进行选择,也可以在 Amazon MWAA 控制台上为 Apache Airflow 版本指定自定义配置选项。本页介绍可用的 Apache Airflow 配置选项,以及如何使用这些选项来覆盖环境中的 Apache Airflow 配置设置。
目录
先决条件
在完成本页上的步骤之前,您需要具备以下条件。
-
权限-您的 Amazon 账户必须已获得管理员授予访问您环境的 AmazonmWAA FullConsole 访问控制策略的权限。此外,您的执行角色必须允许您的 Amazon MWAA 环境访问您的环境所使用的 Amazon 资源。
-
访问权限-如果您需要访问公共存储库才能直接在 Web 服务器上安装依赖项,则必须将环境配置为具有公共网络 Web 服务器访问权限。有关更多信息,请参阅 Apache Airflow 访问模式。
-
Amazon S3 配置 — 用于存储 DAG 的 Amazon S3 存储桶、在
plugins.zip
中的自定义插件和在requirements.txt
中的 Python 依赖项必须配置为已阻止公共访问和已启用版本控制。
工作方式
创建环境时,Amazon MWAA 会将您在 Amazon MWAA 控制台的 A irflow 配置选项中指定的配置设置作为环境变量附加到环境容器中 Amazon Fargate 。如果您在 airflow.cfg
中使用同名设置,则您在 Amazon MWAA 控制台上指定的选项将覆盖 airflow.cfg
中的值。
虽然默认情况下我们不会airflow.cfg
在 Amazon MWAA 环境的 Apache Airflow 用户界面中公开,但你可以直接在亚马逊 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 控制台上打开环境页面
。 -
选择环境。
-
选择编辑。
-
选择下一步。
-
在 Airflow 配置选项窗格中选择添加自定义配置。
-
从下拉列表中选择配置并输入值,或者键入自定义配置并输入值。
-
为每个您想要添加的配置选择添加自定义配置选项。
-
选择保存。
配置参考
下一节包含 Amazon MWAA 控制台下拉列表中可用的 Apache Airflow 配置列表。
电子邮件配置
以下列表显示了 Amazon MWAA 上可用的 Airflow 电子邮件通知配置选项。
我们建议对 SMTP 流量使用端口 587。默认情况下,会 Amazon 阻止所有 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 存储桶上环境的 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()
示例电子邮件通知设置
以下 Apache Airflow 配置选项可用于使用应用程序密码的 Gmail.com 电子邮件帐户。有关更多信息,请参阅《Gmail 帮助参考指南》中的使用应用程序密码登录
接下来做什么?
-
要了解如何将 DAG 文件夹上传到 Amazon S3 存储桶,请参阅 添加或更新 DAG。