

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

# 计划扩展
<a name="AutoScaling-with-Scheduled-Scaling-Shards"></a>

根据计划进行扩展使您能够根据可预测的需求变化来扩展应用程序。要使用定时扩展，您需要创建计划操作，告诉 ElastiCache Valkey 和 Redis OSS 在特定时间执行扩展活动。创建计划操作时，您需要指定现有集群、执行扩缩活动的时间、最小容量和最大容量。您可以创建仅缩放一次或按循环计划缩放的计划操作。

 您只能为已存在的集群创建计划操作。您不能在创建集群的同时创建计划操作。

有关计划操作创建、管理和删除的相关术语的详细信息，请参阅[计划操作创建、管理和删除的常用命令](https://docs.amazonaws.cn/autoscaling/application/userguide/application-auto-scaling-scheduled-scaling.html#scheduled-scaling-commonly-used-commands) 

**创建定期计划：**

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

1. 在导航窗格中，选择 **Valkey** 或 **Redis OSS**。

1. 选择要对其添加策略的集群。

1. 从 **Actions**（操作）下拉菜单中选择 **Manage Auto Scaling policies**（管理弹性伸缩策略）。

1. 选择 **Auto Scaling policies（Auto Scaling 策略）**选项卡。

1. **Auto scaling policies**（弹性伸缩策略）部分中会显示 **Add Scaling policy**（添加扩缩策略）对话框。选择 **Scheduled scaling（计划扩展）**。

1. 对于 **Policy name（策略名称）**，请输入策略的名称。

1. 对于 **Scalable Dimension（可扩展维度）**，选择 **Shards（分区）**。

1. 对于 **Target Shards（目标分区）**，请选择值。

1. 对于 **Recurrence（重复）**，请选择 **Recurring（定期）**。

1. 对于 **Frequency（频率）**，请选择相应的值。

1. 对于 **Start Date（开始日期）**和 **Start time（开始时间）**，请选择策略开始生效的时间。

1. 选择 **Add Policy（添加策略）**。

**创建一次性计划操作：**

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

1. 在导航窗格中，选择 **Valkey** 或 **Redis OSS**。

1. 选择要对其添加策略的集群。

1. 从 **Actions**（操作）下拉菜单中选择 **Manage Auto Scaling policies**（管理弹性伸缩策略）。

1. 选择 **Auto Scaling policies（Auto Scaling 策略）**选项卡。

1. **Auto scaling policies**（弹性伸缩策略）部分中会显示 **Add Scaling policy**（添加扩缩策略）对话框。选择 **Scheduled scaling（计划扩展）**。

1. 对于 **Policy name（策略名称）**，请输入策略的名称。

1. 对于 **Scalable Dimension（可扩展维度）**，选择 **Shards（分区）**。

1. 对于 **Target Shards（目标分区）**，请选择值。

1. 对于 **Recurrence（重复）**，请选择 **Once（一次）**。

1. 对于 **Start Date（开始日期）**和 **Start time（开始时间）**，请选择策略开始生效的时间。

1. 对于 **End Date（结束日期）**，请选择策略生效结束日期。

1. 选择 **Add Policy（添加策略）**。

**删除计划操作**

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

1. 在导航窗格中，选择 **Valkey** 或 **Redis OSS**。

1. 选择要对其添加策略的集群。

1. 从 **Actions**（操作）下拉菜单中选择 **Manage Auto Scaling policies**（管理弹性伸缩策略）。

1. 选择 **Auto Scaling policies（Auto Scaling 策略）**选项卡。

1. 在 **Auto Scaling policies**（弹性伸缩策略）部分，选择弹性伸缩策略，然后从 **Actions**（操作）对话中选择 **Delete（删除）**。

**使用 Amazon CLI 管理计划扩展**

使用以下 application-autoscaling API：
+ [put-scheduled-action](https://docs.amazonaws.cn/cli/latest/reference/autoscaling/put-scheduled-action.html) 
+ [describe-scheduled-actions](https://docs.amazonaws.cn/cli/latest/reference/autoscaling/describe-scheduled-actions.html) 
+ [delete-scheduled-action](https://docs.amazonaws.cn/cli/latest/reference/autoscaling/delete-scheduled-action.html) 

## 使用 Amazon CloudFormation 创建计划操作
<a name="AutoScaling-with-Cloudformation-Declare-Scheduled-Action"></a>

此片段展示了如何使用[AWS::ElastiCache:](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-elasticache-replicationgroup.html): ReplicationGroup 资源创建目标跟踪策略并将其应用于[AWS::ApplicationAutoScaling:: ScalableTarget](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalabletarget.html) 资源。此示例利用 [Fn::Join](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-join.html) 和 [Ref](https://docs.amazonaws.cn/AWSCloudFormation/latest/UserGuide/intrinsic-function-reference-ref.html) 内置函数，使用在同一模板中指定的 `AWS::ElastiCache::ReplicationGroup` 资源的逻辑名称来构造 `ResourceId` 属性。

```
ScalingTarget:
   Type: 'AWS::ApplicationAutoScaling::ScalableTarget'
   Properties:
     MaxCapacity: 3
     MinCapacity: 1
     ResourceId: !Sub replication-group/${logicalName}
     ScalableDimension: 'elasticache:replication-group:NodeGroups'
     ServiceNamespace: elasticache
     RoleARN: !Sub "arn:aws:iam::${AWS::AccountId}:role/aws-service-role/elasticache.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_ElastiCacheRG"
     ScheduledActions:
       - EndTime: '2020-12-31T12:00:00.000Z'
         ScalableTargetAction:
           MaxCapacity: '5'
           MinCapacity: '2'
         ScheduledActionName: First
         Schedule: 'cron(0 18 * * ? *)'
```