

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

# 更新 Amazon MWAA 环境
<a name="update-environment"></a>

**注意**  
在加拿大西部（卡尔加里）和亚太地区（马来西亚）区域尚不支持 Amazon MWAA 正常更新。

Amazon MWAA 环境更新会应用最新更改和安全补丁。您还可以编辑现有配置并升级 Apache Airflow 版本。本指南介绍更新 Amazon MWAA 环境的步骤。

**Contents**
+ [开始前的准备工作](#update-environment-before)
+ [工作线程替换策略](#worker-replacement-strategy)
+ [更新环境资源](#update-environment-resources)
+ [更新环境](#update-environment-start)
  + [步骤 1：指定详细信息](#update-environment-start-details)
  + [步骤 2：配置高级设置](#update-environment-start-advanced)
  + [步骤 3：审核并更新](#update-environment-start-review)

## 开始前的准备工作
<a name="update-environment-before"></a>
+ 环境创建后，将无法修改为环境指定的 [VPC 网络](vpc-create.md)。
+ 您需要将 Amazon S3 存储桶配置为**阻止所有公开访问**并启用**存储桶版本控制**。
+ 您需要 Amazon Web Services 账户，它拥有[使用 Amazon MWAA 的权限](manage-access.md)和在 Amazon Identity and Access Management (IAM) 中创建 IAM 角色的权限。如果您为 Apache Airflow Web 服务器选择了**私有网络**访问模式，由于该模式会限制 Amazon VPC 内的 Apache Airflow 访问权限，因此您需要 IAM 中的权限才能创建 Amazon VPC 端点。
+ 要启用正常环境更新，需要升级到 Apache Airflow 版本 2.4.3 或更高版本。要升级 Airflow 版本，请参阅 [更改 Apache Airflow 版本](upgrading-environment.md)。

## 工作线程替换策略
<a name="worker-replacement-strategy"></a>

您可以选择工作线程替换策略来控制 Amazon MWAA 在环境更新期间如何处理活跃的工作线程。您可以选择下列策略之一：

**强制更新**  
强制更新是默认的工作线程替换策略。强制更新会立即停止所有活跃的工作进程，从而导致正在运行的任务在更新期间失败。

**正常更新**  
正常更新支持工作线程在关闭前继续运行任务长达 12 小时。只要任务在 12 小时内完成，它就可以防止任务因更新中断而失败。新任务将路由到更新后的工作线程。

要在现有环境上启用正常更新，必须完成一次**强制更新**，并确保环境在 Apache Airflow 版本 2.4.3 或更高版本上。

**注意**  
如果您在环境处于 `MAINTENANCE` 状态时执行更新，则任何正在进行的环境更新的工作线程替换策略将从 `GRACEFUL` 切换到 `FORCED`。在维护完成后，将执行更新。

## 更新环境资源
<a name="update-environment-resources"></a>

默认情况下，Amazon MWAA 环境更新使用现有环境配置。要更新环境但不更改当前配置，请执行以下操作：

1. 在 Amazon MWAA 控制台上打开[环境页面](https://console.amazonaws.cn/mwaa/home#/environments)。

1. 从**环境**列表中，选择要更新的环境。

1. 在环境页面上，选择**编辑**以编辑环境。

1. 选择**下一步**，直到进入**查看并保存**页面。

1. 在**查看并保存**页面上，查看更改，然后选择**保存**。

## 更新环境
<a name="update-environment-start"></a>

下一节介绍更新 Amazon MWAA 环境的步骤。

### 步骤 1：指定详细信息
<a name="update-environment-start-details"></a>

**要指定环境的详细信息，请执行以下操作**

1. 在 Amazon MWAA 控制台上打开[环境页面](https://console.amazonaws.cn/mwaa/home#/environments)。

1. 从**环境**列表中，选择要更新的环境。

1. 在环境页面上，选择**编辑**以编辑环境。

1. 在环境详细信息部分，对于 Airflow 版本，从下拉列表中选择要将环境升级到的新 Apache Airflow 版本号。
**注意**  
在升级之前，请确保 DAG 和其他工作流程资源与新 Apache Airflow 版本兼容。有关更多信息，请参阅[更改 Apache Airflow 版本](upgrading-environment.md)。

1. 在 **Amazon S3 的 DAG 代码**下指定以下内容：

   1. **S3 Bucket**。选择**浏览 S3** 并选择 Amazon S3 存储桶，或者输入 Amazon S3 URI。

   1. **DAG 文件夹**。选择**浏览 S3**，然后选择 Amazon S3 存储桶中的 `dags` 文件夹，或者输入 Amazon S3 URI。

   1. **插件文件-*可选***。选择**浏览 S3**，然后选择 Amazon S3 存储桶上的 `plugins.zip` 文件，或者输入 Amazon S3 URI。

   1. **要求文件-*可选***。选择**浏览 S3**，然后选择 Amazon S3 存储桶上的 `requirements.txt` 文件，或者输入 Amazon S3 URI。

   1. **启动脚本文件-*可选***，选择**浏览 S3**并选择 Amazon S3 存储桶上的脚本文件，或者输入 Amazon S3 URI。

1. 选择**下一步**。

### 步骤 2：配置高级设置
<a name="update-environment-start-advanced"></a>

**配置高级设置**

1. 在 **Web 服务器访问**下，选择您首选的 [Apache Airflow 访问模式](configuring-networking.md)：

   1. **私有网络**。这限制了对 Apache Airflow UI 的访问，只有在* Amazon VPC 中*已获得 [环境的 IAM 策略](access-policies.md)访问权限的用户才能访问。您需要获得权限才能为此步骤创建 Amazon VPC 端点。
**注意**  
如果 Apache Airflow UI 只能在公司网络中访问，并且不需要访问公共存储库即可进行 Web 服务器要求安装，请选择**私有网络**选项。如果您选择此访问模式选项，则需要创建一种机制来访问 Amazon VPC 中的 Apache Airflow Web 服务器。有关更多信息，请参阅[访问 Apache Airflow Web 服务器的 VPC 端点（私有网络访问）](vpc-vpe-access.md#vpc-vpe-access-endpoints)。

   1. **公有网络**。这使获得[环境的 IAM 策略](access-policies.md)访问权限的用户可以通过互联网访问 Apache Airflow UI。

1. 在**安全组**下，选择用于保护 [Amazon VPC](vpc-create.md) 的安全组：

   1. 默认情况下，Amazon MWAA 会在 Amazon VPC 中创建一个安全组，并在**创建新安全组**中使用特定的入站和出站规则。

   1. **—可选**。取消选中**创建新安全组**中的复选框可选择最多 5 个安全组。
**注意**  
现有 Amazon VPC 安全组必须配置特定的入站和出站规则，才能允许网络流量。要了解更多信息，请参阅 [Amazon MWAA 上的 VPC 安全](vpc-security.md)。

1. 在**环境类**下，选择一个[环境类](environment-class.md)。

   我们建议选择支持您的工作负载所需的最小尺寸。您可以随时更改环境类。

1. 对于**最大工作线程计数**，请指定要在环境中运行的 Apache Airflow 工作线程的最大数量。

   有关更多信息，请参阅[高性能用例示例](mwaa-autoscaling.md#mwaa-autoscaling-high-volume)。

1. 指定**最大 Web 服务器数**和**最小 Web 服务器数**，以配置 Amazon MWAA 如何在环境中扩展 Apache Airflow Web 服务器。

   有关 Web 服务器自动扩展的更多信息，请参阅 [配置 Amazon MWAA Web 服务器自动扩缩](mwaa-web-server-autoscaling.md)。

1. 在**加密**下，选择一个数据加密选项：

   1. 默认情况下，Amazon MWAA 使用 Amazon 自有密钥对数据进行加密。

   1. **—可选**。选择**自定义加密设置（高级）**以选择其他 Amazon KMS 密钥。如果您选择在此步骤中指定[由客户托管的密钥](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html#customer-cmk)，则必须指定 Amazon KMS 密钥 ID 或 ARN。[Amazon MWAA 不支持 Amazon KMS 别名和多区域密钥](custom-keys-certs.md)。如果您在 Amazon S3 存储桶上指定了用于服务器端加密的 Amazon S3 密钥，则必须为 Amazon MWAA 环境指定相同的密钥。
**注意**  
您必须拥有该密钥的权限才能在 Amazon MWAA 控制台上选择该密钥。您还必须通过 [附加密钥政策](custom-keys-certs.md#custom-keys-certs-grant-policies-attach) 中所述的附加策略授予 Amazon MWAA 使用密钥的权限。

1. **（推荐**）。在**监控**下，为 **Airflow 日志配置**选择一个或多个日志类别，将 Apache Airflow 日志发送到 CloudWatch Logs：

   1. **Airflow 任务日志**。在**日志级别**中选择要发送到 CloudWatch Logs 的 Apache Airflow 任务日志的类型。

   1. **Airflow Web 服务器日志**。在**日志级别**中选择要发送到 CloudWatch Logs 的 Apache Airflow Web 服务器日志的类型。

   1. **Airflow 计划程序日志**。在**日志级别**中选择要发送到 CloudWatch Logs 的 Apache Airflow 计划程序日志的类型。

   1. **Airflow 工作线程日志**。在**日志级别**中选择要发送到 CloudWatch Logs 的 Apache Airflow 工作线程日志的类型。

   1. **Airflow DAG 处理日志**。在**日志级别**中选择要发送到 CloudWatch Logs 的 Apache Airflow DAG 处理日志的类型。

1. **—可选**。对于 **Airflow 配置选项**，选择**添加自定义配置选项**。

   您可以从 Apache Airflow 版本的 [Apache Airflow 配置选项](configuring-env-variables.md)的建议下拉列表中进行选择，也可以指定自定义配置选项。例如 `core.default_task_retries` : `3`。

1. 在**权限**下，选择一个执行角色。

   1. 默认情况下，Amazon MWAA 会在**创建新角色**中创建一个[执行角色](mwaa-create-role.md)。您必须具有创建 IAM 角色的权限，才能使用此选项。

   1. **—可选**。选择**输入角色 ARN** 输入现有执行角色的 Amazon 资源名称（ARN）。

1. 在**更新规范**下，选择 a [工作线程替换策略](#worker-replacement-strategy) 以控制在更新期间如何处理活跃工作线程。

1. 选择**下一步**。

### 步骤 3：审核并更新
<a name="update-environment-start-review"></a>

**查看环境摘要**
+ 查看环境摘要，选择**保存**。
**注意**  
使用强制更新方法更新环境大约需要二十到三十分钟。正常环境更新可能需要长达十二个小时才能完成，因为它需要等待您正在进行的任务完成。