本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon MWAA 常见问题解答
本页描述了您在使用 Amazon MWAA 时可能遇到的常见问题。
目录
- 支持的版本
- 使用案例
- 环境通知
- 每个环境有多少任务存储空间可用?
- Amazon MWAA 环境使用的默认操作系统是什么?
- 我能否在我的 Amazon MWAA 环境中使用自定义图片?
- 亚马逊是否MWAAHIPAA合规?
- Amazon 是否MWAA支持竞价型实例?
- Amazon 是否MWAA支持自定义域名?
- 我能SSH进入我的环境吗?
- 为什么VPC安全组需要自引用规则?
- 我可以向不同群组隐藏环境IAM吗?
- 我能否在 Apache Airflow 工作线程上存储临时数据?
- 我能否指定超过 25 个 Apache Airflow 工作线程?
- Amazon 是否MWAA支持共享亚马逊VPCs或共享子网?
- 我能否创建或集成自定义 Amazon SQS 队列来管理 Apache Airflow 中的任务执行和工作流程编排?
- 指标
- DAGs、运算符、连接和其他问题
支持的版本
亚马逊对 Apache Airflow v2 MWAA 支持什么?
要了解 Amazon MWAA 支持的内容,请参阅Amazon MWAA 上的 Apache Airflow 版本。
为什么不支持旧版本的 Apache Airflow?
由于较旧版本存在安全问题,我们仅支持最新的(截至发布时的)Apache Airflow 版本,即 Apache Airflow v1.10.12。
我应使用何种版本的 Python 版本?
Amazon MWAA 上支持以下 Apache Airflow 版本。
注意
-
从 Apache Airflow v2.2 开始,亚马逊MWAA支持直接在 Apache Airflow 网络服务器上安装 Python 要求、提供程序包和自定义插件。
-
从 Apache Airflow v2.7.2 开始,要求文件必须包含一条
--constraint
语句。如果您未提供约束条件,亚马逊MWAA将为您指定一个限制,以确保您的要求中列出的软件包与您正在使用的 Apache Airflow 版本兼容。有关在需求文件中设置约束条件的更多信息,请参阅安装 Python 依赖项。
Apache Airflow 版本 | Apache Airflow 指南 | Apache Airflow 约束条件 | Python 版本 |
---|---|---|---|
有关迁移自行管理的 Apache Airflow 部署或迁移现有 Amazon MWAA 环境的更多信息,包括备份元数据数据库的说明,请参阅《亚马逊MWAA迁移指南》。
Amazon MWAA 使用的是什么版本的?pip
对于运行 Apache Airflow v1.10.12 的环境,亚马逊MWAA将安装 21.1.2 版。pip
注意
亚马逊MWAA不会升级 pip
Apache Airflow v1.10.12 环境。
对于运行 Apache Airflow v2 及更高版本的环境,亚马逊MWAA安装pip
版本 21.3.1。
使用案例
我应该什么时候使用 AWS Step Functions vs. 亚马逊MWAA?
-
您可以使用 Step Functions 来处理个人客户订单,因为 Step Functions 可以扩展以满足对一个订单或一百万个订单的需求。
-
如果您运行的是夜间工作流程来处理前一天的订单,则可以使用 Step Functions 或 Amazon MWAA。Amazon MWAA 允许您使用开源选项,将工作流程从您正在使用的 AWS 资源中抽象出来。
环境通知
每个环境有多少任务存储空间可用?
任务存储空间限制在 20 GB 以内,由 Amazon ECS Fargate 1.4 指定。的数量RAM由您指定的环境类决定。有关环境类的更多信息,请参阅 配置 Amazon MWAA 环境类。
Amazon MWAA 环境使用的默认操作系统是什么?
亚马逊MWAA环境是在运行亚马逊 Linux 2(版本 2.6 及更早版本)的实例上创建的,在运行 2.7 及更高版本的亚马逊 Linux 2023 的实例上创建的。
我能否在我的 Amazon MWAA 环境中使用自定义图片?
不支持自定义镜像。亚马逊MWAA使用在亚马逊 Linux 上构建的镜像AMI。亚马逊通过运行您添加到 Amazon S3 存储桶中pip3 -r install
针对环境的 requirements.txt 文件中指定的要求来MWAA安装其他要求。
亚马逊是否MWAAHIPAA合规?
Amaz MWAA on 符合《健康保险流通与责任法案》(HIPAA)
Amazon 是否MWAA支持竞价型实例?
亚马逊目前MWAA不支持 Apache Airflow 的按需亚马逊EC2竞价型实例类型。但是,亚马逊MWAA环境可以触发亚马逊EMR和亚马逊等上的竞价型实例EC2。
Amazon 是否MWAA支持自定义域名?
要使用自定义域名作为您的 Amazon MWAA 主机名,请执行以下任一操作:
-
对于具有公共 Web 服务器访问权限的亚马逊MWAA部署,您可以将亚马逊 CloudFront 与 Lambda @Edge 配合使用,将流量引导到您的环境,并将自定义域名映射到。 CloudFront有关更多信息以及为公共环境设置自定义域的示例,请参阅 Amazon 示例 GitHub 存储库中的用于公共 Web 服务器的 Amazon MWAA 自定义域
MWAA示例。 -
有关使用私有 Web 服务器访问权限的 Amazon MWAA 部署,请参阅为 Apache Airflow Web 服务器设置自定义域。
我能SSH进入我的环境吗?
虽SSH然 Amazon MWAA 环境不支持,但可以使用 a DAG 来运行 bash 命令。BashOperator
例如:
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'] }}" )
要DAG在 Apache Airflow 用户界面中触发,请使用:
{ "command" : "your bash command"}
为什么VPC安全组需要自引用规则?
通过创建自引用规则,您可以将源限制在中的同一个安全组中VPC,并且该安全组并不向所有网络开放。要了解更多信息,请参阅 您在 Amazon VPC 上的安全 MWAA。
我可以向不同群组隐藏环境IAM吗?
您可以通过在中指定环境名称来限制访问权限 AWS Identity and Access Management,但是, AWS 控制台中不提供可见性筛选,如果用户可以看到一个环境,他们就可以看到所有环境。
我能否在 Apache Airflow 工作线程上存储临时数据?
Apache Airflow 运算符可以在工作线程上存储临时数据。Apache Airflow 工作线程可以访问环境的 Fargate 容器上的 /tmp
中的临时文件。
注意
根据亚马逊 ECS Fargat e 1.4,任务总存储空间限制在 20 GB 以内。无法保证后续任务将在同一 Fargate 容器实例上运行,该实例可能会使用不同的 /tmp
文件夹。
我能否指定超过 25 个 Apache Airflow 工作线程?
是。尽管您可以在 Amazon MWAA 控制台上指定最多 25 个 Apache Airflow 工作程序,但您可以通过请求增加配额在环境中最多配置 50 个。有关更多信息,请参阅 Requesting a quota increase(请求增加限额)。
Amazon 是否MWAA支持共享亚马逊VPCs或共享子网?
亚马逊MWAA不支持共享的亚马逊VPCs或共享子网。VPC您在创建环境时选择的 Amazon 应归尝试创建环境的账户所有。但是,您可以将流量从亚马逊账户VPC中的亚马逊路由到共享MWAA账户VPC。要了解更多信息并查看将流量路由到共享亚马逊的示例,请参阅 Amazon VPC Transit Gateways 指南中的集中出站路由到互联网。VPC
我能否创建或集成自定义 Amazon SQS 队列来管理 Apache Airflow 中的任务执行和工作流程编排?
不可以,您不能在亚马逊内创建、修改或使用自定义的亚马逊SQS队列MWAA。这是因为亚马逊MWAA会自动为每个亚马逊MWAA环境预配置和管理自己的亚马逊SQS队列。
指标
使用哪些指标来确定是否扩展工作线程?
Amazon 会MWAA监控QueuedTasks并确定是否RunningTasks在您的 CloudWatch 环境中扩展 Apache Airflow W ork ers。要了解更多信息,请参阅 Amazon MWAA 的监控和指标。
我可以在中创建自定义指标 CloudWatch吗?
不在 CloudWatch 主机上。但是,您可以创建在DAG中写入自定义指标的 CloudWatch。有关更多信息,请参阅 使用 DAG 在 CloudWatch 中编写自定义指标。
DAGs、运算符、连接和其他问题
我能否使用 PythonVirtualenvOperator
?
Amazon 并未明确支持MWAA,但您可以创建使用该的自定义插件PythonVirtualenvOperator
。PythonVirtualenvOperator
有关代码示例,请参阅 为 Apache Airflow PythonVirtualenvOperator 创建自定义插件。
Amazon 需要多长时间MWAA才能识别出一个新DAG文件?
DAGs会定期从 Amazon S3 存储桶同步到您的环境。如果您添加新DAG文件,Amazon 大约需要 300 秒MWAA才能开始使用新文件。如果您更新现有的DAG,Amazon MWAA 大约需要 30 秒才能识别出您的更新。
这些值分别对应于 Apache Airflow DAGs 配置选项和DAGs,分别对应于 Apache Airflow 配置选项dag_dir_list_interval
min_file_process_interval
为什么 Apache Airflow 没有采集我的DAG文件?
以下是此问题的可能解决方案:
-
检查执行角色是否具有对 Amazon S3 存储桶的足够权限。要了解更多信息,请参阅 亚马逊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 管理员插件菜单中看不到我的插件?
出于安全考虑,亚马逊上的 Apache Airflow Web 服务器的网络出口流量MWAA有限,并且不会在 2.0.2 版环境的 Apache Airflow Web 服务器上直接安装插件或 Python 依赖项。显示的插件允许亚马逊在 AWS Identity and Access Management () IAM 中MWAA对你的 Apache Airflow 用户进行身份验证。
为了能够直接在 Web 服务器上安装插件和 Python 依赖项,我们建议使用 Apache Airflow v2.2 及更高版本创建一个新环境。亚马逊直接在 Apache Airflow v2.2 及更高版本的网络服务器上MWAA安装 Python 依赖项和自定义插件。
我可以使用 AWS Database Migration Service (DMS) 运算符吗?
Amazon MWAA 支持DMS运营商
当我RESTAPI使用 AWS 凭证访问 Airflow 时,我能否将限制限制提高到每秒 10 笔交易以上 ()?TPS
是的,可以。要提高节流限制,请联系 AWS 客户支持