

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Elastic Beanstalk 環境的排程 Auto Scaling 動作
<a name="environments-cfg-autoscaling-scheduledactions"></a>

如要在可預測的尖峰流量期間最佳化您環境使用 Amazon EC2 執行個體的情況，請設定您的 Amazon EC2 Auto 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. 在導覽窗格中，選擇**環境**，然後在清單中選擇您環境的名稱。

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 (重複)** 表達式重複執行。
   + **Recurrence (週期)** ‒ 使用 [Cron](http://en.wikipedia.org/wiki/Cron#CRON_expression) 表達式指定您希望排程動作發生的頻率。例如，`30 6 * * 2` 會在 UTC 每週二上午 6:30 執行動作。
   + **End time (結束時間)** (選擇性) ‒ 重複動作的選項。如果指定此選項，動作會根據 **Recurrence (重複)** 表達式重複執行，並在此時間之後不再執行。

     當排程的動作結束時，Auto Scaling 不會自動回到之前的設定。設定第二個排程動作，並視需要使 Auto Scaling 返回原始設定。

1. 選擇 **Add** (新增)。

1. 若要儲存變更，請選擇頁面底部的**儲存變更**。
**注意**  
要在套用後才會儲存排程的動作。

## 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 時間格式的詳細資訊，請參閱 [Date and Time Formats](http://www.w3.org/TR/NOTE-datetime)。日期在所有排定的動作都必須是獨一無二的。

Elastic Beanstalk 在 [`aws:autoscaling:scheduledaction`](command-options-general.md#command-options-general-autoscalingscheduledaction) 命名空間中，提供了排程動作設定適用的組態選項。使用 `resource_name` 欄位來指定排定的動作名稱。

**Example Scheduled-scale-up-specific-time-long.config**  
此組態檔案會指示 Elastic Beanstalk 在 2015-12-12T00:00:00Z，從五個執行個體擴展為 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 Scheduled-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 Scheduled-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 Scheduled-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 Scheduled-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 Scheduled-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
```