

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

# 示例计划
<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 | 值 | 
| --- | --- | --- | 
|   `begintime`   |   `String`   |   `09:00`   | 
|   `endtime`   |   `String`   |   `16:59`   | 
|   `name`   |   `String`   |   `weekdays-9-5`   | 
|   `weekdays`   |   `StringSet`   |   `mon-fri`   | 

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

计划名称提供了必须应用于实例的标签值以及将使用的时区。


| 字段 | Type | 值 | 
| --- | --- | --- | 
|   `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 点（ET）自动向实例发送停止命令。

### 时间段
<a name="periods-2"></a>

此时段将在每天下午 5 点停止实例。


| 字段 | Type | 值 | 
| --- | --- | --- | 
|   `endtime`   |   `String`   |   `16:59`   | 
|   `name`   |   `String`   |   `stop-at-5`   | 

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

计划名称提供了必须应用于实例的标签值以及将使用的时区。


| Field |  | 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)。

**要部署此模板，您需要提供可在 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:
  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 点（ET）运行至星期五下午 5 点（ET）。由于星期一和星期五并非完整天数，该计划包含三个时段以分别对应星期一、星期二至星期四、星期五。

### 时间段
<a name="periods-3"></a>

第一个时段会在星期一上午 9 点启动已标记的实例，并在午夜停止实例。此时段包含以下字段和值。


| 字段 | Type | 值 | 
| --- | --- | --- | 
|   `begintime`   |   `String`   |   `09:00`   | 
|   `endtime`   |   `String`   |   `23:59`   | 
|   `name`   |   `String`   |   `mon-start-9am`   | 
|   `weekdays`   |   `StringSet`   |   `mon`   | 

第二个时段会让已标记的实例在周二至周四全天运行。此时段包含以下字段和值。


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

第三个时段会在星期五下午 5 点停止已标记的实例。此时段包含以下字段和值。


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

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

此计划将这三个时段整合，形成适用于已标记实例的计划。该计划包含以下字段和值。


| Field |  | Value | 
| --- | --- | --- | 
|   `name`   |   `String`   |  mon-9am-fri-5pm  | 
|   `periods`   |   `StringSet`   |  周一开始-上午9点，，星期五-stop-下午5点 tue-thu-full-day  | 
|   `timezone`   |   `String`   |  America/New\$1York  | 

### 实例标签
<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)。

**要部署此模板，您需要提供可在 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:
  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 | 说明 | 
| --- | --- | --- | 
|   **Main**   |   `AWS::Lambda::Function`   |  AWS 实例计划程序 Lambda 函数。  | 
|   **计划程序配置帮助程序**   |   `Custom::ServiceSetup`   |  将全局配置设置存储在 Amazon DynamoDB 中。  | 
|   **计划程序调用权限**   |   `AWS::Lambda::Permission`   |  允许亚马逊 CloudWatch 事件调用实例计划程序的 AWS Lambda 函数。  | 
|   **计划程序日志**   |   `AWS::Logs::LogGroup`   |  CloudWatch 实例调度程序的日志组。  | 
|   **计划程序策略**   |   `AWS::IAM::Policy`   |  允许计划程序执行启动和停止操作、更改 Amazon EC2 实例属性、设置标签和访问计划程序资源的策略。  | 
|   **计划程序规则**   |   `AWS::Events::Rule`   |  调用计划程序的 Lambda 函数的亚马逊 EventBridge 事件规则。  | 
|   **配置指标事件规则**   |   `AWS::Events::Rule`   |  定期调用配置描述匿名指标函数的 Amazon EventBridge 事件规则。当匿名指标处于禁用状态时，此事件规则也会被禁用。  | 
|   **状态表**   |   `AWS::DynamamoDB::Table`   |  用于存储实例上次所需状态的 DynamoDB 表。  | 
|   **配置表**   |   `AWS::DynamamoDB::Table`   |  用于存储全局配置、计划和时段数据的 DynamoDB 表。  | 
|   **实例计划程序 SNS 主题**   |   `AWS::SNS::Topic`   |  用于向订阅的电子邮件地址发送警告和错误消息。  | 