疑难解答:创建和更新 Amazon MWAA 环境 - Amazon Managed Workflows for Apache Airflow

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

疑难解答:创建和更新 Amazon MWAA 环境

本页主题包含您在创建和更新 Amazon MWAA环境时可能遇到的错误以及如何解决这些错误。

更新 requirements.txt

以下主题描述了您在更新 requirements.txt 时可能收到的错误。

我指定了 requirements.txt 的新版本,更新环境花了 20 多分钟

如果您的环境需要超过二十分钟才能安装requirements.txt文件的新版本,则环境更新失败,Amazon MWAA 正在回滚到容器映像的最后一个稳定版本。

  1. 检查程序包版本。我们建议您始终为 requirements.txt 中的 Python 依赖项指定特定版本 (==) 或最高版本 (<=) 。

  2. 查看 Apache Airflow 日志。如果您启用了 Apache Airflow 日志,请在控制台的日志组页面上验证您的日志组是否已成功创建。 CloudWatch 如果您看到空白日志,最常见的原因是您的执行角色中缺少写入日志 CloudWatch 的 Amazon S3 的权限。要了解更多信息,请参阅 执行角色

  3. 检查 Apache Airflow 配置选项。如果您使用的是 Secrets Manager,请验证您指定为 Apache Airflow 配置选项的键值对是否配置正确。要了解更多信息,请参阅 使用密钥配置 Apache Airflow 连接 AWS Secrets Manager

  4. 检查VPC网络配置。要了解更多信息,请参阅 我尝试创建环境,但它一直处于“正在创建”状态

  5. 检查执行角色权限。执行角色是一个 AWS Identity and Access Management (IAM) 角色,其权限策略MWAA允许亚马逊代表您调用其他 AWS 服务(例如 Amazon S3、Amazon、Amazon CloudWatch SQS、AmazonECR)的资源。还需要允许访问由客户托管的密钥AWS 自有密钥。要了解更多信息,请参阅 执行角色

  6. 要运行疑难解答脚本来检查您的亚马逊MWAA环境的亚马逊VPC网络设置和配置,请参阅 Su AWS pport Tools 中的验证环境脚本 GitHub。

插件

以下主题描述了您在配置或更新 Apache Airflow 插件时可能遇到的问题。

亚马逊是否MWAA支持实现自定义 UI?

从 Apache Airflow v2.2 开始,MWAA亚马逊支持在 Apache Airflow 网络服务器上安装插件和实现自定义用户界面。如果您的亚马逊MWAA环境运行的是 Apache Airflow v2.0.2 或更早版本,则您将无法实现自定义用户界面。

有关版本管理和升级现有环境的更多信息,请参阅 Amazon MWAA 上的 Apache Airflow 版本

我可以通过插件在 Amazon MWAA 本地运行器上实现自定义 UI 更改,但是当我尝试在 Amazon 上执行相同操作时MWAA,我看不到我的更改,也看不到任何错误。为什么会发生这种情况?

Amazon MWAA 本地运行器将所有 Apache Airflow 组件捆绑到一个映像中,允许您应用自定义用户界面插件更改。

创建存储桶

以下主题描述了您在创建 Amazon S3 存储桶时可能收到的错误。

我无法选择 S3 阻止公共访问设置的选项

您的 Amazon MWAA 环境的执行角色需要获得对 Amazon S3 存储桶执行GetBucketPublicAccessBlock操作的权限,以验证存储桶已阻止公开访问。我们建议您完成以下步骤:

  1. 按照步骤将JSON策略附加到您的执行角色

  2. 附上以下JSON政策:

    { "Effect":"Allow", "Action":[ "s3:GetObject*", "s3:GetBucket*", "s3:List*" ], "Resource":[ "arn:aws:s3:::YOUR_S3_BUCKET_NAME", "arn:aws:s3:::YOUR_S3_BUCKET_NAME/*" ] }

    将示例占位符替换为 YOUR_S3_BUCKET_NAME 使用您的 Amazon S3 存储桶名称,例如 my-mwaa-unique-s3-bucket-name.

  3. 要运行疑难解答脚本来检查您的亚马逊MWAA环境的亚马逊VPC网络设置和配置,请参阅 Su AWS pport Tools 中的验证环境脚本 GitHub。

创建环境。

以下主题描述了您在创建环境时可能收到的错误。

我尝试创建环境,但它一直处于“正在创建”状态

我们建议您完成以下步骤:

  1. 使用公共路由检查VPC网络。如果您使用的是可访问互联网的 VPC A mazon,请验证以下内容:

    1. 您VPC的 Amazon 已配置为允许您的亚马逊MWAA环境使用的不同 AWS 资源之间的网络流量,如中所定义关于在 Amazon 上建立人际关系 MWAA。例如,您的VPC安全组必须允许自引用规则中的所有流量,或者可以选择为端口范围 443 和HTTPS端口范围 5432 指定TCP端口范围。

  2. 使用私有路由检查VPC网络。如果您使用的是无法访问互联网的 AmazonVPC,请验证以下内容:

    1. 您VPC的 Amazon 已配置为允许您的亚马逊MWAA环境的不同 AWS 资源之间的网络流量,如中所定义关于在 Amazon 上建立人际关系 MWAA。例如,您的两个私有子网不得有通往网NAT关(或NAT实例)的路由表,也不能有 Internet 网关。

  3. 要运行疑难解答脚本来检查您的亚马逊MWAA环境的亚马逊VPC网络设置和配置,请参阅 Su AWS pport Tools 中的验证环境脚本 GitHub。

我尝试创建环境,但它的状态显示为“创建失败”

我们建议您完成以下步骤:

  1. 检查VPC网络配置。要了解更多信息,请参阅 我尝试创建环境,但它一直处于“正在创建”状态

  2. 检查用户权限 MWAA在创建环境之前,Amazon 会根据用户的证书进行试运行。您的 AWS 账户可能无权在 AWS Identity and Access Management (IAM) 中为环境创建某些资源。例如,如果您选择私有网络 Apache Airflow 访问模式,则您的 AWS 帐户必须已获得管理员授予您环境的 A mazonMWAAFull ConsoleAccess 访问控制策略的访问权限,该策略允许您的帐户创建VPC端点。

  3. 检查执行角色权限。执行角色是一个 AWS Identity and Access Management (IAM) 角色,其权限策略MWAA允许亚马逊代表您调用其他 AWS 服务(例如 Amazon S3、Amazon、Amazon CloudWatch SQS、AmazonECR)的资源。还需要允许访问由客户托管的密钥AWS 自有密钥。要了解更多信息,请参阅 执行角色

  4. 查看 Apache Airflow 日志。如果您启用了 Apache Airflow 日志,请在控制台的日志组页面上验证您的日志组是否已成功创建。 CloudWatch 如果您看到空白日志,最常见的原因是您的执行角色中缺少写入日志 CloudWatch 的 Amazon S3 的权限。要了解更多信息,请参阅 执行角色

  5. 要运行疑难解答脚本来检查您的亚马逊MWAA环境的亚马逊VPC网络设置和配置,请参阅 Su AWS pport Tools 中的验证环境脚本 GitHub。

  6. 如果您使用的是无法访问互联网的亚马逊VPC,请确保您已创建一个 Amazon S3 网关终端节点,并ECR向亚马逊授予访问亚马逊 S3 所需的最低权限。要了解有关创建 Amazon S3 网关端点,请参阅以下内容:

我尝试选择一个VPC,但收到 “网络故障” 错误

我们建议您完成以下步骤:

  • 如果您在创建环境时尝试选择 Amazon VPC 时看到 “网络故障” 错误,请关闭所有正在运行的浏览器内代理,然后重试。

我尝试创建环境但收到服务、分区或资源“必须传递”错误

我们建议您完成以下步骤:

  • 您之所以收到此错误,可能是因为URI您为 Amazon S3 存储桶指定的末尾包含一个 “/” URI。我们建议删除路径中的“/”。该值应采用以下格式:

    s3://your-bucket-name

我尝试创建环境,它的状态显示为“可用”,但是当我尝试访问 Airflow UI 时,会显示“来自服务器的空回复”或“502 无效网关”错误

我们建议您完成以下步骤:

  1. 检查VPC安全组配置。要了解更多信息,请参阅 我尝试创建环境,但它一直处于“正在创建”状态

  2. 确认你在中列出的任何 Apache Airflow 包都与你在亚马逊上运行的 Apache Airflow 版本requirements.txt相对应。MWAA要了解更多信息,请参阅 安装 Python 依赖项

  3. 要运行疑难解答脚本来检查您的亚马逊MWAA环境的亚马逊VPC网络设置和配置,请参阅 Su AWS pport Tools 中的验证环境脚本 GitHub。

我尝试创建一个环境,我的用户名是一堆随机的字符名称

  • Apache Airflow 的用户名最大长度为 64 个字符。如果您的 AWS Identity and Access Management (IAM) 角色超过此长度,则使用哈希算法来缩短该长度,同时保持唯一性。

Update environment

以下主题描述了您在更新环境时可能收到的错误。

我尝试更改环境类,但更新失败了

如果您将环境更新为其他环境类(例如将 mw1.medium 更改为 mw1.small),并且更新环境的请求失败,则环境状态将变为 UPDATE_FAILED 状态,环境将回滚到之前的稳定版本并根据环境的先前稳定版本进行计费。

我们建议您完成以下步骤:

  1. 使用 on 在本地测试你的DAGs自定义插件和 Python 依赖关系 GitHub。aws-mwaa-local-runner

  2. 要运行疑难解答脚本来检查您的亚马逊MWAA环境的亚马逊VPC网络设置和配置,请参阅 Su AWS pport Tools 中的验证环境脚本 GitHub。

访问环境

以下主题描述了您在访问环境时可能收到的错误。

我无法访问 Apache Airflow UI

我们建议您完成以下步骤:

  1. 检查用户权限 您可能未被授予允许您查看 Apache Airflow UI 的权限策略的访问权限。要了解更多信息,请参阅 访问亚马逊MWAA环境

  2. 检查网络访问。这可能是因为您选择了私有网络访问模式。如果你的 URL Apache Airflow 用户界面采用以下格式387fbcn-8dh4-9hfj-0dnd-834jhdfb-vpce.c10.us-west-2.airflow.amazonaws.com,则表示你在 Apache Airflow Web 服务器上使用私有路由您可以将 Apache Airflow 访问模式更新为公共网络访问模式,也可以创建一种机制来访问 Apache Airflow Web 服务器的VPC端点。要了解更多信息,请参阅 在亚马逊 MWAA 上管理对特定服务的亚马逊 VPC 终端节点的访问