

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

# 排程範例
<a name="sample-schedules"></a>

AWS 上的執行個體排程器可讓您自動啟動和停止 Amazon Elastic Compute Cloud (Amazon EC2) 和 Amazon Relational Database Service (Amazon RDS) 執行個體。下一節提供一些可以適應許多常見使用案例的範例排程。

## 標準 9-5 個工作時數
<a name="standard-9-5-working-hours"></a>

此排程說明如何在倫敦的工作日上午 9 點至下午 5 點執行執行個體。

### 期間
<a name="periods-1"></a>

此期間將從上午 9 點開始執行個體，並在工作日 （週一至週五） 下午 5 點停止執行個體。


| 欄位 | Type | Value | 
| --- | --- | --- | 
|  `begintime`  |  `String`  |  `09:00`  | 
|  `endtime`  |  `String`  |  `16:59`  | 
|  `name`  |  `String`  |  `weekdays-9-5`  | 
|  `weekdays`  |  `StringSet`  |  `mon-fri`  | 

### Schedule
<a name="schedule"></a>

排程名稱提供必須套用至執行個體的標籤值，以及將使用的時區。


| 欄位 | Type | Value | 
| --- | --- | --- | 
|  `name`  |  `String`  |  `london-working-hours`  | 
|  `periods`  |  `StringSet`  |  `weekdays-9-5`  | 
|  `timezone`  |  `String`  |  `Europe/London`  | 

### 執行個體標籤
<a name="instance-tag"></a>

若要將此排程套用至執行個體，您必須將 `Schedule=london-working-hours` 標籤新增至執行個體。如果您在 AWS CloudFormation **執行個體排程器標籤名稱參數中變更預設標籤名稱**，您的標籤將會不同。例如，如果您輸入 `Sked`做為標籤名稱，您的標籤將為 `Sked=london-working-hours`。如需詳細資訊，請參閱《*Amazon Elastic Compute Cloud 使用者指南*》中的[標記您的 資源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-ec2-resources-table)。

### 排程器 CLI
<a name="scheduler-cli-1"></a>

若要使用[執行個體排程器 CLI](scheduler-cli-4.md) 設定上述排程，請使用下列命令：

```
scheduler-cli create-period --stack <stackname> --name weekdays-9-5 --weekdays mon-fri --begintime 9:00 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name london-working-hours --periods weekdays-9-5 --timezone Europe/London

Europe/London
```

### 自訂資源
<a name="custom-resource"></a>

下列 CloudFormation 範本將使用排程[自訂資源建立上述排程](manage-schedules-using-infrastructure-as-code-iac.md)。

若要部署此範本，您需要提供可在 AWS CloudFormation 主控台中找到的 **ServiceInstanceScheduleServiceToken** ARN，方法是選取[先前部署的執行個體排程器中樞堆疊](step-1-launch-the-instance-scheduler-hub-stack.md)，然後選取**輸出**。

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  LondonWorkingWeek:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: london-working-hours
      Description: run instances from 9am to 5pm in London on weekdays
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: Europe/London
      Periods:
     - Description: 9am to 5pm on weekdays
        BeginTime: '09:00'
        EndTime: '16:59'
        WeekDays: mon-fri
```

## 下午 5 點後停止執行個體
<a name="stop-instances-after-5-pm"></a>

執行個體可以在一天中的任何時間自由啟動，此排程將確保停止命令每天在東部時間下午 5 點自動傳送給它們。

### 期間
<a name="periods-2"></a>

此期間將在每天下午 5 點停止執行個體。


| 欄位 | Type | Value | 
| --- | --- | --- | 
|  `endtime`  |  `String`  |  `16:59`  | 
|  `name`  |  `String`  |  `stop-at-5`  | 

### Schedule
<a name="schedule-1"></a>

排程名稱提供必須套用至執行個體的標籤值，以及將使用的時區。


| 欄位 |  | Value | 
| --- | --- | --- | 
|  `name`  |  `String`  |  `stop-at-5-new-york`  | 
|  `periods`  |  `StringSet`  |  `stop-at-5`  | 
|  `timezone`  |  `String`  |  `America/New York`  | 

### 執行個體標籤
<a name="instance-tag-1"></a>

若要將此排程套用至執行個體，您必須將 `Schedule=stop-at-5-new-york` 標籤新增至執行個體。如果您在 AWS CloudFormation **執行個體排程器標籤名稱參數中變更預設標籤名稱**，您的標籤將會不同。例如，如果您輸入 `Sked`做為標籤名稱，您的標籤將為 `Sked=stop-at-5-new-york` 。如需詳細資訊，請參閱《*Amazon Elastic Compute Cloud 使用者指南*》中的[標記您的 資源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-ec2-resources-table)。

### 排程器 CLI
<a name="scheduler-cli-2"></a>

若要使用[執行個體排程器 CLI 設定上述排程](scheduler-cli-4.md)，請使用下列命令：

```
scheduler-cli create-period --stack <stackname> --name stop-at-5 --endtime 16:59

scheduler-cli create-schedule --stack <stackname> --name stop-at-5-new-york --periods stop-at-5 --timezone America/New_York
```

### 自訂資源
<a name="custom-resource-1"></a>

下列 CloudFormation 範本將使用排程[自訂資源建立上述排程](manage-schedules-using-infrastructure-as-code-iac.md)。

若要部署此範本，您需要按一下[先前部署的執行個體排程器中樞堆疊](step-1-launch-the-instance-scheduler-hub-stack.md)並選取**輸出**，提供可在 AWS CloudFormation 主控台中找到的 **ServiceInstanceScheduleServiceToken** ARN。

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopAfter5:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: stop-at-5-new-york
      Description: stop instances at 5pm ET every day
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: stop at 5pm
        EndTime: '16:59'
```

## 在週末停止執行個體
<a name="stop-instances-over-the-weekend"></a>

此排程說明如何在東部時間星期一上午 9 點到東部時間星期五下午 5 點執行執行個體。由於週一和週五不是整天，因此此排程包含三個時段：週一、週二至週四和週五。

### 期間
<a name="periods-3"></a>

第一個期間會在星期一上午 9 點開始標記的執行個體，並在午夜停止。此期間包含下列欄位和值。


| 欄位 | Type | Value | 
| --- | --- | --- | 
|  `begintime`  |  `String`  |  `09:00`  | 
|  `endtime`  |  `String`  |  `23:59`  | 
|  `name`  |  `String`  |  `mon-start-9am`  | 
|  `weekdays`  |  `StringSet`  |  `mon`  | 

第二個期間會在星期二到星期四全天執行已標記的執行個體。此期間包含下列欄位和值。


| 欄位 |  | Value | 
| --- | --- | --- | 
|  `name`  |  `String`  |  `tue-thu-full-day`  | 
|  `weekdays`  |  `StringSet`  |  `tue-thu`  | 

第三個期間會在星期五下午 5 點停止標記的執行個體。此期間包含下列欄位和值。


| 欄位 |  | Value | 
| --- | --- | --- | 
|  `begintime`  |  `String`  |  `00:00`  | 
|  `endtime`  |  `String`  |  `16:59`  | 
|  `name`  |  `String`  |  `fri-stop-5pm`  | 
|  `weekdays`  |  `StringSet`  |  `fri`  | 

### Schedule
<a name="schedule-2"></a>

排程會將三個期間合併為已標記執行個體的排程。排程包含下列欄位和值。


| 欄位 |  | Value | 
| --- | --- | --- | 
|  `name`  |  `String`  | 週一至上午 9 點至週五下午 5 點 | 
|  `periods`  |  `StringSet`  | mon-start-9am、tue-thu-full-day、fri-stop-5pm | 
|  `timezone`  |  `String`  | America/New\_York | 

### 執行個體標籤
<a name="instance-tag-2"></a>

若要將此排程套用至執行個體，您必須將 `Schedule=mon-9am-fri-5pm` 標籤新增至執行個體。請注意，如果您在 AWS CloudFormation **執行個體排程器標籤名稱參數中變更預設標籤名稱**，您的標籤將會不同。例如，如果您輸入 Sked 做為標籤名稱，您的標籤將為 `Sked=mon-9am-fri-5pm`。如需詳細資訊，請參閱《*Amazon Elastic Compute Cloud 使用者指南*》中的[標記您的 資源](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#tag-ec2-resources-table)。

### 排程器 CLI
<a name="scheduler-cli-3"></a>

若要使用[執行個體排程器 CLI 設定上述排程](scheduler-cli-4.md)，請使用下列命令：

```
scheduler-cli create-period --stack <stackname> --name
mon-start-9am --weekdays mon --begintime 9:00 --endtime 23:59
scheduler-cli create-period --stack <stackname> --name
tue-thu-full-day --weekdays tue-thu
scheduler-cli create-period --stack <stackname> --namefri-stop-5pm --weekdays fri --begintime 0:00 --endtime 17:00

scheduler-cli create-schedule --stack <stackname> --name
mon-9am-fri-5pm --periods
mon-start-9am,tue-thu-full-day,fri-stop-5pm -timezone
America/New_York
```

### 自訂資源
<a name="custom-resource-2"></a>

下列 CloudFormation 範本將使用排程[自訂資源建立上述排程](manage-schedules-using-infrastructure-as-code-iac.md)。

若要部署此範本，您需要提供 **ServiceInstanceScheduleServiceToken** ARN，您可以在 AWS CloudFormation 主控台中找到該 ARN，方法是選取[先前部署的執行個體排程器中樞堆疊](step-1-launch-the-instance-scheduler-hub-stack.md)，然後選取**輸出**。

```
AWSTemplateFormatVersion: 2010-09-09
Parameters:
  ServiceInstanceScheduleServiceTokenARN:
    Type: String
    Description: (Required) service token arn taken from InstanceScheduler outputs
Metadata:
  'AWS::CloudFormation::Designer': {}
Resources:
  StopOnWeekends:
    Type: 'Custom::ServiceInstanceSchedule'
    Properties:
      NoStackPrefix: 'True'
      Name: mon-9am-fri-5pm
      Description: start instances at 9am on monday and stop them at 5pm on friday
      ServiceToken: !Ref ServiceInstanceScheduleServiceTokenARN
      Timezone: America/New_York
      Periods:
      - Description: 9am monday start
        BeginTime: '09:00'
        EndTime: '23:59'
        WeekDays: mon
      - Description: all day tuesday-thursday
        WeekDays: tue-thu
      - Description: 5pm friday stop
        BeginTime: '00:00'
        EndTime: '16:59'
        WeekDays: fri
```

## 解決方案資源
<a name="solution-resources"></a>

下列資源會建立為 AWS 堆疊上執行個體排程器的一部分。


| 資源名稱 | Type | 說明 | 
| --- | --- | --- | 
|  **主要**  |  `AWS::Lambda::Function`  | AWS Lambda 函數上的執行個體排程器。 | 
|  **排程器組態協助程式**  |  `Custom::ServiceSetup`  | 將全域組態設定儲存在 Amazon DynamoDB 中。 | 
|  **排程器調用許可**  |  `AWS::Lambda::Permission`  | 允許 Amazon CloudWatch 事件叫用執行個體排程器的 AWS Lambda 函數。 | 
|  **排程器日誌**  |  `AWS::Logs::LogGroup`  | 執行個體排程器的 CloudWatch Log Group。 | 
|  **排程器政策**  |  `AWS::IAM::Policy`  | 允許排程器執行開始和停止動作、變更 Amazon EC2 執行個體屬性、設定標籤和存取排程器資源的政策。 | 
|  **排程器規則**  |  `AWS::Events::Rule`  | 叫用排程器 Lambda 函數的 Amazon EventBridge 事件規則。 | 
|  **組態指標事件規則**  |  `AWS::Events::Rule`  | 定期叫用組態描述匿名指標函數的 Amazon EventBridge 事件規則。停用匿名指標時停用。 | 
|  **狀態資料表**  |  `AWS::DynamamoDB::Table`  | 存放上次所需執行個體狀態的 DynamoDB 資料表。 | 
|  **組態資料表**  |  `AWS::DynamamoDB::Table`  | 存放全域組態、排程和期間資料的 DynamoDB 資料表。 | 
|  **執行個體排程器 SNS 主題**  |  `AWS::SNS::Topic`  | 傳送警告和錯誤訊息至訂閱的電子郵件地址。 | 