

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

# 中的服务更新 ElastiCache
<a name="Self-Service-Updates"></a>

ElastiCache 自动监控您的缓存、集群和节点队列，以便在服务更新可用时对其进行应用。无服务器缓存的服务更新会自动地透明应用。对于基于节点的集群，您可以设置一个预定义的维护时段，以便 ElastiCache 可以应用这些更新。但是，在某些情况下，您可能会发现此方法过于僵化，可能会限制您的业务流程。

利用服务更新，您可以控制何时对基于节点的集群应用更新以及应用哪些更新。您还可以实时监控所选 ElastiCache 集群的更新进度。

**Topics**
+ [管理基于节点的集群的服务更新](#managing-updates)

## 管理基于节点的集群的服务更新
<a name="managing-updates"></a>

ElastiCache 基于节点的集群的服务更新会定期发布。如果您有一个或多个符合条件的基于节点的集群进行这些服务更新，则更新发布后，您将通过电子邮件、SNS、Personal Health Dashboard (PHD) 和亚马逊 CloudWatch 事件收到通知。更新还会显示在 ElastiCache 控制台的 “**服务更新**” 页面上。通过使用此控制面板，您可以查看 ElastiCache 车队的所有服务更新及其状态。无服务器缓存的服务更新会透明地应用，无法通过**服务更新**进行管理。

您可以控制在自动更新开始前应用更新的时间。我们强烈建议您尽快应用任何**安全更新类型的更新**，以确保您的 ElastiCache 集群始终 up-to-date安装最新的安全补丁。

以下各节详细探索了这些选项。

### 应用服务更新
<a name="applying-updates"></a>

您可以从服务更新具有 **available**（可用）状态起开始向实例集应用服务更新。服务更新为累积更新。换句话说，您尚未应用的任何更新都包含在您的最新更新中。

如果服务更新启用了自动更新，则可以选择在服务更新可用时记录任何操作。 ElastiCache 将安排在**自动更新开始日期之后的某个集群即将到来的维护时段内应用更新**。您将收到更新每个阶段的相关通知。

**注意**  
您只能应用那些具有 **available**（可用）或 **scheduled**（已安排）状态的服务更新。

有关查看和应用任何特定于服务的更新到适用 ElastiCache 集群的更多信息，请参阅[使用控制台应用服务更新](#applying-updates-console-APIReferenceconsole)。

当您的一个或多个 ElastiCache 集群有新的服务更新可用时，您可以使用 ElastiCache 控制台、API 或AWS CLI来应用更新。以下各节说明了可用于应用更新的选项。

#### 使用控制台应用服务更新
<a name="applying-updates-console-APIReferenceconsole"></a>

要查看可用服务更新的列表和其他信息，请转到控制台中的 **Service Updates**（服务更新）页面。

1. 登录AWS 管理控制台并打开 Amazon ElastiCache 控制台，网址为[https://console.aws.amazon.com/elasticache/](https://console.aws.amazon.com/elasticache/)。

1. 在导航窗格中，选择 **Service Updates**（服务更新）。

1. 在 **Service updates**（服务更新）下，您可以查看以下内容：
   + **Service update name**（服务更新名称）：服务更新的唯一名称
   + **Update type**（更新类型）：服务更新的类型，可以是 **security-update** 或 **engine-update**
   + **Update severity**（更新严重性）：应用更新的优先级：
     + **critical (关键)：**我们建议您立即应用此更新（14 天或更短时间内）。
     + **important (重要)：**只要您的业务流程允许，我们建议您尽快应用此更新（30 天或更短时间内）。
     + **medium (中等)：**我们建议您尽快应用此更新（60 天或更短时间内）。
     + **low (低)：**我们建议您尽快应用此更新（90 天或更短时间内）。
   + **Engine version**（引擎版本）：如果更新类型为 engine-update，则为正在更新的引擎版本。
   + **发布日期**：更新发布且可应用于集群的时间。
   + ** Recommended Apply By Date (建议的应用截止日期)**： ElastiCache 建议的更新应用截止日期。
   + **Status (状态)**：更新的状态，可为下列状态之一：
     + **可用**：更新适用于必需的集群。
     + **complete**（完成）：已应用更新。
     + **cancelled (已取消)：**更新已被取消且不再需要。
     + **expired (已过期)**：再也无法应用更新。

1. 选择单个更新（不是其左侧的按钮）以查看服务更新的详细信息。

   在 **Cluster update status**（集群更新状态）部分中，您可以查看尚未应用服务更新或最近才应用服务更新的集群的列表。您可以查看每个集群的以下内容：
   + **Cluster name**（集群名称）：集群的名称
   + **Nodes updated**（已更新节点）：特定集群中已更新或仍对特定服务更新可用的各个节点的比率。
   + **Update Type**（更新类型）：服务更新的类型，可以是 **security-update** 或 **engine-update**
   + **Status**（状态）：集群服务更新的状态，为下列状态之一：
     + *available*（可用）：更新适用于必需的集群。
     + *进行中*：正在对此集群应用更新。
     + *已计划*：已计划更新日期。
     + *完成*：已成功应用更新。完成状态的集群将在完成后显示 7 天。

     如果您选择任何或所有具有 **available**（可用）或 **scheduled**（已安排）状态的集群，然后选择 **Apply now**（立即应用），将开始对这些集群应用更新。

#### 使用AWS CLI应用服务更新
<a name="applying-updates-cli-redis"></a>

在收到服务更新可用的通知后，您可以使用AWS CLI检测和应用这些更新：
+ 要检索可用的服务更新的描述，请运行以下命令：

  `aws elasticache describe-service-updates --service-update-status available`

  有关更多信息，请参阅 [describe-service-updates](https://docs.aws.amazon.com/cli/latest/reference/elasticache/describe-service-updates.html)。
+ 要对集群列表应用服务更新，请运行以下命令：

  `aws elasticache batch-apply-update-action --service-update ServiceUpdateNameToApply=sample-service-update --cluster-names cluster-1 cluster2`

  有关更多信息，请参阅 [batch-apply-update-action](https://docs.aws.amazon.com/cli/latest/reference/elasticache/batch-apply-update-action.html)。

### 使用AWS控制台验证是否应用了最新的服务更新
<a name="verifying-self-service-updates"></a>

您可以按照以下步骤验证您 ElastiCache 的 For Redis OSS 集群是否正在运行最新的服务更新：

1. 在 **Redis OSS 集群**页面上选择适用的集群

1. 在导航窗格中选择**服务更新**，查看该集群的适用服务更新（如果有）。

如果控制台显示了服务更新列表，您可以选择相应服务更新并选择**立即应用**。

![服务更新控制台屏幕截图 1。](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/service-updates-1.png)


如果控制台显示 “未找到服务更新”，则表示适用 ElastiCache 于 Redis 的 OSS 集群已经应用了最新的服务更新。

![服务更新控制台屏幕截图 2。](http://docs.aws.amazon.com/zh_cn/AmazonElastiCache/latest/dg/images/service-updates-2.png)


### 停止服务更新
<a name="stopping-self-service-updates"></a>

如果需要，您可以停止对集群的更新。例如，如果正在进行更新的集群出现意外激增，您可能希望停止更新。或者，如果更新花费时间过长并在高峰时间中断您的业务流程，您可能希望停止更新。

[正在停止](https://docs.aws.amazon.com//AmazonElastiCache/latest/APIReference/API_BatchStopUpdateAction.html)操作将立即中断对这些集群和任何尚未更新的节点的所有更新。它将继续完成对具有 **in progress (正在进行中)** 状态的任何节点的更新。不过，它将停止对同一集群中其他具有 **update available (更新可用)** 状态的节点的更新并将其状态恢复到 **Stopping (正在停止)** 状态。

在 **Stopping (正在停止)** 工作流程完成后，具有 **Stopping (正在停止)** 状态的节点将变为 **Stopped (已停止)** 状态。根据更新的工作流程，一些集群将不会具有任何更新的节点。其他集群可能包含一些已更新的节点和另一些仍具有 **update available (更新可用)** 状态的节点。

您可以稍后返回以在业务流程允许时完成更新过程。在此情况下，选择要完成更新的适用的集群，然后选择 **Apply Now (立即应用)**。有关更多信息，请参阅 [应用服务更新](#applying-updates)。

#### 使用 控制台
<a name="stopping-updates-console"></a>

您可以使用 ElastiCache 控制台中断服务更新。以下内容演示了如何执行此操作：
+ 在选定集群上进行服务更新后， ElastiCache 控制台将在仪表板顶部显示 “**查看/停止更新**” 选项卡。 ElastiCache 
+ 要中断更新，请选择 **Stop Update (停止更新)**。
+ 在停止更新时，请选择集群并检查状态。它恢复到 **Stopping (正在停止)** 状态并最终变为 **Stopped (已停止)** 状态。

#### 使用AWS CLI
<a name="stopping-updates-cli"></a>

您可以使用AWS CLI中断服务更新。以下代码示例演示如何执行此操作。

对于复制组，请执行以下操作：

`aws elasticache batch-stop-update-action --service-update-name {{sample-service-update}} --replication-group-ids {{my-replication-group-1 my-replication-group-2}}`

对于集群，请执行以下操作：

`aws elasticache batch-stop-update-action --service-update-name {{sample-service-update}} --cache-cluster-ids {{my-cache-cluster-1 my-cache-cluster-2}}`

有关更多信息，请参阅 [BatchStopUpdateAction](https://docs.aws.amazon.com//AmazonElastiCache/latest/APIReference/API_BatchStopUpdateAction.html)。