Amazon MWAA 常见问题解答
本页描述了您在使用 Amazon MWAA 时可能遇到的常见问题。
支持的版本
Amazon MWAA 对 Apache Airflow v2 支持什么?
要了解 Amazon MWAA 支持的内容,请参阅 Amazon MWAA 上的 Apache Airflow 版本。
我可以使用何种版本的 Python?
Amazon MWAA 上支持以下 Apache Airflow 版本。
注意
-
自 2025 年 12 月 30 日起,Amazon MWAA 将终止对 Apache Airflow 版本 v2.4.3、v2.5.1 和 v2.6.3 的支持。有关更多信息,请参阅Apache Airflow 版本支持和常见问题。
-
从 Apache Airflow v2.2.2 开始,Amazon MWAA 支持直接在 Apache Airflow Web 服务器上安装 Python 要求、提供程序包和自定义插件。
-
从 Apache Airflow v2.7.2 开始,要求文件必须包含一条
--constraint语句。如果您未提供约束条件,Amazon MWAA 将为您指定一个约束条件,以确保您的要求中列出的程序包与您正在使用的 Apache Airflow 版本兼容。有关在需求文件中设置约束条件的更多信息,请参阅安装 Python 依赖项。
| Apache Airflow 版本 | Apache Airflow 发布日期 | Amazon MWAA 上市日期 | Apache Airflow 约束条件 | Python 版本 |
|---|---|---|---|---|
|
2025 年 10 月 1 日 |
||||
|
2024 年 12 月 18 日 |
||||
|
2024 年 9 月 26 日 |
||||
|
2024 年 7 月 9 日 |
||||
|
2024 年 2 月 23 日 |
||||
|
2023 年 11 月 6 日 |
有关迁移自管理的 Apache Airflow 部署或迁移现有 Amazon MWAA 环境的更多信息,包括备份元数据数据库的说明,请参阅 Amazon MWAA 迁移指南。
使用案例
我可以在 Amazon SageMaker 融通式合作开发工作室上使用 Amazon MWAA 吗?
是。使用 Amazon SageMaker 融通式合作开发工作室工作流程,您可以在 Amazon SageMaker 融通式合作开发工作室中设置和运行一系列任务。Amazon SageMaker 融通式合作开发工作室工作流程使用 Apache Airflow 对数据处理程序进行建模并编排您的 Amazon SageMaker 融通式合作开发工作室代码构件。有关更多信息,请参阅工作流程部分。要了解有关 Amazon SageMaker 的更多信息,请参阅什么是 Amazon SageMaker?
我可以在何时使用 AWS Step Functions 而不是 Amazon MWAA?
-
您可以使用 Step Functions 来处理个人客户订单,因为 Step Functions 可以扩展以满足对一个订单或一百万个订单的需求。
-
如果您运行的是夜间工作流程来处理前一天的订单,则可以使用 Step Functions 或 Amazon MWAA。Amazon MWAA 允许您使用开源选项,从您正在使用的 AWS 资源中对工作流程进行摘要。
环境通知
每个环境有多少任务存储空间可用?
任务存储空间限制为 20 GB,由 Amazon ECS Fargate 1.4 指定。RAM 量由您指定的环境类决定。有关环境类的更多信息,请参阅 配置 Amazon MWAA 环境类。
Amazon MWAA 环境使用的默认操作系统是什么?
Amazon MWAA 环境是在运行 2.6 及更早版本的 Amazon Linux 2 的实例上创建的,以及在运行 2.7 及更高版本的 Amazon Linux 2023 的实例上创建的。
我能否为我的 Amazon MWAA 环境使用自定义镜像?
不支持自定义镜像。Amazon MWAA 使用基于 Amazon Linux AMI 构建的镜像。对于您添加到环境的 Amazon S3 存储桶中的 requirements.txt 文件中指定的要求,Amazon MWAA 通过运行 pip3 -r install 来安装额外要求。
Amazon MWAA 是否符合 HIPAA 标准?
Amazon MWAA 符合《健康保险流通与责任法案(HIPAA)》
Amazon MWAA 是否支持竞价型实例?
Amazon MWAA 目前不支持 Apache Airflow 的按需 Amazon EC2 竞价型实例类型。但是,Amazon MWAA 环境可以在 Amazon EMR 和 Amazon EC2 上触发竞价型实例。
Amazon MWAA 是否支持自定义域?
要使用自定义域作为 Amazon MWAA 主机名,请执行以下操作之一:
-
对于具有公共 Web 服务器访问权限的 Amazon MWAA 部署,您可以使用带有 Lambda@Edge 的 Amazon CloudFront 将流量引导到环境,并将自定义域名映射到 CloudFront。有关更多信息以及为公共环境设置自定义域的示例,请参阅在 Amazon MWAA 示例 GitHub 存储库中的 公有 Web 服务器的 Amazon MWAA 自定义域
示例。 -
有关具有私有 Web 服务器访问权限的 Amazon MWAA 部署,请参阅 为 Apache Airflow Web 服务器设置自定义域。
我能否通过 SSH 进入我的环境?
虽然 Amazon MWAA 环境不支持 SSH,但可以使用 DAG 通过使用 BashOperator 来运行 bash 命令。例如:
from airflow import DAG from airflow.operators.bash_operator import BashOperator from airflow.utils.dates import days_ago with DAG(dag_id="any_bash_command_dag", schedule_interval=None, catchup=False, start_date=days_ago(1)) as dag: cli_command = BashOperator( task_id="bash_command", bash_command="{{ dag_run.conf['command'] }}" )
要在 Apache Airflow UI 中触发 DAG,请使用:
{ "command" : "your bash command"}
为什么 VPC 安全组需要自引用规则?
通过创建自引用规则,您可以将源限制为 VPC 中的同一安全组,而不将其对所有网络开放。要了解更多信息,请参阅 Amazon MWAA 上的 VPC 安全。
我能否在 IAM 中向不同的群组隐藏环境?
您可以通过在 AWS Identity and Access Management 中指定环境名称来限制访问权限,但是,AWS 控制台中不提供访问筛选,如果用户可以访问一个环境,他们就可以访问所有环境。
我能否在 Apache Airflow 工作线程上存储临时数据?
Apache Airflow 运算符可以在工作线程上存储临时数据。Apache Airflow 工作线程可以访问环境的 Fargate 容器上的 /tmp 中的临时文件。
注意
根据 Amazon ECS Fargate 1.4,任务总存储空间限制在 20 GB 以内。无法保证后续任务将在同一 Fargate 容器实例上运行,该实例可以使用不同的 /tmp 文件夹。
我能否指定超过 25 个 Apache Airflow 工作线程?
是。尽管您可以在 Amazon MWAA 控制台上指定最多 25 个 Apache Airflow 工作线程,但您可以通过请求增加配额在环境中配置多达 50 个 Apache Airflow 工作线程。有关更多信息,请参阅请求增加限额。
Amazon MWAA 是否支持共享 Amazon VPC 或共享子网?
Amazon MWAA 不支持共享 Amazon VPC 或共享子网。您在创建环境时选择的 Amazon VPC 必须由尝试创建环境的账户拥有。但是,您可以将流量从 Amazon MWAA 账户中的 Amazon VPC 路由到共享 VPC。有关更多信息以及将流量路由到共享 Amazon VPC 的示例,请参阅《Amazon VPC 中转网关指南》中的集中出站路由到互联网。
我能否创建或集成自定义 Amazon SQS 队列来管理 Apache Airflow 中的任务执行和工作流程编排?
不可以,您不能在 Amazon MWAA 中创建、修改或使用自定义 Amazon SQS 队列。这是因为 Amazon MWAA 会自动为每个 Amazon MWAA 环境预置和管理自己的 Amazon SQS 队列。
指标
使用哪些指标来确定是否扩展工作线程?
Amazon MWAA 监控 CloudWatch 中的 QueuedTasks 和 RunningTasks,以确定是否在环境中扩展 Apache Airflow 工作线程。要了解更多信息,请参阅 Amazon MWAA 的监控和指标。
我能否在 CloudWatch 中创建自定义指标?
在 CloudWatch 控制台上不能。但是,您可以创建一个 DAG,以在 CloudWatch 中写入自定义指标。有关更多信息,请参阅使用 DAG 在 CloudWatch 中编写自定义指标。
DAG、运算符、连接和其他问题
我能否使用 PythonVirtualenvOperator?
Amazon MWAA 未明确支持 PythonVirtualenvOperator,但您可以创建一个使用 PythonVirtualenvOperator 的自定义插件。有关示例代码,请参阅 为 Apache Airflow PythonVirtualenvOperator 创建自定义插件。
Amazon MWAA 需要多长时间才能识别新的 DAG 文件?
DAG 会定期从 Amazon S3 存储桶同步到环境。如果您添加新的 DAG 文件,Amazon MWAA 大约需要 300 秒才能开始使用新文件。如果您更新现有的 DAG,Amazon MWAA 大约需要 30 秒才能识别更新。
这些值(新 DAG 为 300 秒,现有 DAG 更新为 30 秒)分别对应于 Apache Airflow 配置选项 dag_dir_list_intervalmin_file_process_interval
为什么 Apache Airflow 没有采集我的 DAG 文件?
以下是此问题的可能解决方案:
-
检查执行角色是否具有对 Amazon S3 存储桶的足够权限。要了解更多信息,请参阅 Amazon MWAA 执行角色。
-
检查 Amazon S3 存储桶是否已配置阻止公共访问并启用版本控制。要了解更多信息,请参阅 为 Amazon MWAA 创建 Amazon S3 存储桶。。
-
验证 DAG 文件本身。例如,请确保每个 DAG 都有一个唯一的 DAG ID。
我能否从环境中移除 plugins.zip 或 requirements.txt?
目前,没有办法在添加 plugins.zip 或 requirements.txt 后将其从环境中删除,但我们正在努力解决这个问题。在此期间,变通方法是分别指向空文本或 zip 文件。要了解更多信息,请参阅 删除 Amazon S3 上的文件。
为什么我的插件不出现在 Apache Airflow v2.0.2 管理员插件菜单中?
出于安全原因,Amazon MWAA 上的 Apache Airflow Web 服务器的网络出口流量有限,并且不会直接在 2.0.2 版本环境的 Apache Airflow Web 服务器上安装插件或 Python 依赖项。所列的插件允许 Amazon MWAA 在 AWS Identity and Access Management (IAM) 中对 Apache Airflow 用户进行身份验证。
为了能够直接在 Web 服务器上安装插件和 Python 依赖项,我们建议使用 Apache Airflow v2.2 及更高版本创建一个新环境。Amazon MWAA 直接在 Apache Airflow v2.2 及更高版本的 Web 服务器上安装 Python 依赖项和自定义插件。
我能否使用 AWS 数据库迁移服务(DMS)运算符?
Amazon MWAA 支持 DMS 运算符
当我使用 AWS 凭证访问 Airflow REST API 时,能否将节流限制提高到每秒 10 个事务处理(TPS)以上?
是的,可以。要提高节流限制,请联系 AWS 客户支持
Airflow 任务执行 API 服务器在 Amazon MWAA 中的哪个位置运行?
Amazon MWAA 在 Web 服务器组件中运行 Airflow 任务执行 API 服务器。任务执行 API 仅在 Apache Airflow v3 及更高版本中可用。了解有关 Amazon MWAA 架构的更多信息,请参阅 架构。