

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

# Elastic Beanstalk 环境的计划 Auto Scaling 操作
<a name="environments-cfg-autoscaling-scheduledactions"></a>

要在可预测的高峰流量期间优化您的环境对 Amazon EC2 实例的使用，请将您的 Amazon A EC2 uto Scaling 组配置为按计划更改其实例数量。您可以用重复操作配置您的环境，以便在上午扩展，在夜间流量低时缩减。例如，如果您的营销活动会在有限时间段内使网站的流量增加，则可计划一个一次性事件以便在活动开始时扩展，而计划另一个事件以便在活动结束时缩减。

每个环境最多可以定义 120 个活跃的计划操作。Elastic Beanstalk 还会保留最多 150 个过期的计划操作，可以通过更新设置来重用这些操作。

## 配置计划的操作
<a name="environments-cfg-autoscaling-scheduledactions-console"></a>

您可以在 Elastic Beanstalk 控制台中为环境的 Auto Scaling 组创建计划的操作。

**在 Elastic Beanstalk 控制台中配置计划的操作**

1. 打开 [Elastic Beanstalk](https://console.aws.amazon.com/elasticbeanstalk) 控制台，然后**在 “区域” 列表中，选择您**的。 AWS 区域

1. 在导航窗格中，选择 **Environments**（环境），然后从列表中选择环境的名称。

1. 在导航窗格中，选择 **Configuration (配置)**。

1. 在 **Capacity (容量)** 配置类别中，选择 **Edit (编辑)**。

1. 在 **Time-based scaling (基于时间的扩展)** 部分中，选择 **Add scheduled action (添加计划的操作)**。

1. 填写以下计划操作设置：
   + **Name (名称)** - 指定一个唯一的名称，最多包含 255 个字母数字字符且不带空格。
   + **Instances (实例)** - 选择要应用于 Auto Scaling 组的最小和最大实例计数。
   + **Desired capacity (所需容量)**（可选）- 为 Auto Scaling 组设置所需的初始容量。在应用计划的操作后，触发器将根据其设置调整所需容量。
   + **Occurrence (出现)** - 选择 **Recurring (定期)** 以在计划中重复扩展操作。
   + **Start time (开始时间)** - 对于一次性操作，请选择运行操作的日期和时间。

     对于重复操作，开始时间是可选的。指定它以选择执行操作的最早时间。在此时间之后，操作将根据**循环**表达式重复发生。
   + **Recurrence (循环)** - 使用 [Cron](http://en.wikipedia.org/wiki/Cron#CRON_expression) 表达式指定您希望计划操作发生的频率。例如，`30 6 * * 2` 在 UTC 时间每周二的早上 6:30 运行操作。
   + **End time (结束时间)**（可选）- 对于重复性操作是可选的。如果指定此项，操作将根据**循环**表达式重新进行，并且在此时间之后不再执行。

     当计划的操作结束时，Auto Scaling 不会自动恢复为其以前的设置。配置第二个计划操作，以根据需要将 Auto Scaling 返回原始设置。

1. 选择 **Add**。

1. 要保存更改，请选择页面底部的 **Apply**（应用）。
**注意**  
计划的操作在应用之前不保存。

## aws:autoscaling:scheduledaction 命名空间
<a name="environments-cfg-autoscaling-scheduledactions-namespace"></a>

如果您需要配置大量计划操作，则可以使用[配置文件](ebextensions.md)或 [Elastic Beanstalk API](environment-configuration-methods-after.md#configuration-options-after-awscli-commandline) 应用来自 YAML 或 JSON 文件的配置选项更改。通过这些方法还可以访问 [`Suspend` 选项](command-options-general.md#command-options-general-autoscalingscheduledaction)，以临时停用某个重复的计划操作。

**注意**  
在控制台之外使用计划操作配置选项时，请使用 ISO 8601 时间格式指定开始时间和结束时间 (采用 UTC)。例如，2015-04-28T04:07:02Z。有关 ISO 8601 时间格式的更多信息，请参阅[日期和时间格式](http://www.w3.org/TR/NOTE-datetime)。日期在所有计划操作中都必须是唯一的。

Elastic Beanstalk 在 [`aws:autoscaling:scheduledaction`](command-options-general.md#command-options-general-autoscalingscheduledaction) 命名空间中提供了用于计划操作设置的配置选项。使用 `resource_name` 字段可指定计划操作的名称。

**Example S cheduled-scale-up-specific-time-long.conf**  
此配置文件指示 Elastic Beanstalk 在 2015-12-12T00:00:00Z 从 5 个实例扩展到 10 个实例。  

```
option_settings:
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: MinSize
    value: '5'
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: MaxSize
    value: '10'
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: DesiredCapacity
    value: '5'
  - namespace: aws:autoscaling:scheduledaction
    resource_name: ScheduledScaleUpSpecificTime
    option_name: StartTime
    value: '2015-12-12T00:00:00Z'
```

**Example S cheduled-scale-up-specific-time.config**  
要在 EB CLI 或配置文件中使用简写语法，请将资源名称添加到命名空间。  

```
option_settings:
  ScheduledScaleUpSpecificTime.aws:autoscaling:scheduledaction:
    MinSize: '5'
    MaxSize: '10'
    DesiredCapacity: '5'
    StartTime: '2015-12-12T00:00:00Z'
```

**Example S cheduled-scale-down-specific-time.config**  
此配置文件指示 Elastic Beanstalk 在 2015-12-12T07:00:00Z 进行缩减。  

```
option_settings:
  ScheduledScaleDownSpecificTime.aws:autoscaling:scheduledaction:
    MinSize: '1'
    MaxSize: '1'
    DesiredCapacity: '1'
    StartTime: '2015-12-12T07:00:00Z'
```

**Example S cheduled-periodic-scale-up .config**  
此配置文件指示 Elastic Beanstalk 在每天上午 9 点进行横向扩展。计划该操作从 2015 年 5 月 14 日开始并于 2016 年 1 月 12 日结束。  

```
option_settings:
  ScheduledPeriodicScaleUp.aws:autoscaling:scheduledaction:
    MinSize: '5'
    MaxSize: '10'
    DesiredCapacity: '5'
    StartTime: '2015-05-14T07:00:00Z'
    EndTime: '2016-01-12T07:00:00Z'
    Recurrence: 0 9 * * *
```

**Example S cheduled-periodic-scale-down .config**  
此配置文件指示 Elastic Beanstalk 在每天下午 6 点进行缩减以便不运行实例。如果您知道应用程序在工作时间之外的大多数时间闲置，则可以创建一个类似的计划操作。如果您的应用程序必须在工作时间之外停止运行，请将 `MaxSize` 更改为 `0`。  

```
option_settings:
  ScheduledPeriodicScaleDown.aws:autoscaling:scheduledaction:
    MinSize: '0'
    MaxSize: '1'
    DesiredCapacity: '0'
    StartTime: '2015-05-14T07:00:00Z'
    EndTime: '2016-01-12T07:00:00Z'
    Recurrence: 0 18 * * *
```

**Example S cheduled-weekend-scale-down .config**  
此配置文件指示 Elastic Beanstalk 在每个星期五的下午 6 点进行缩减。如果您获知应用程序在周末并未接收到足够多的流量，则可创建一个类似的计划操作。  

```
option_settings:
  ScheduledWeekendScaleDown.aws:autoscaling:scheduledaction:
    MinSize: '1'
    MaxSize: '4'
    DesiredCapacity: '1'
    StartTime: '2015-12-12T07:00:00Z'
    EndTime: '2016-01-12T07:00:00Z'
    Recurrence: 0 18 * * 5
```