

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

# 时段参考
<a name="period-reference"></a>

时段包含相关条件，您可通过这些条件设置实例的具体运行时长（以小时、天和月为单位）。一个时段可包含多个条件，但仅在满足所有条件时，AWS 实例计划程序才会应用相应的启动或停止操作。

## 启动时间和停止时间
<a name="start-and-stop-times"></a>

`begintime` 和 `endtime` 字段用于定义 AWS 实例计划程序启动和停止实例的时间。如果您仅指定启动时间，则必须手动停止实例。请注意，如果您在 [weekdays](#days-of-the-week) 字段中指定一个值，解决方案将使用该值来确定实例的停止时间。例如，如果您将 `begintime` 设为上午 9 点且未设置 `endtime`，同时将 weekdays 值设为星期一至星期五，除非您已计划相邻时段，否则实例将在星期五晚上 11:59 停止。

同样地，如果您仅指定停止时间，则必须手动启动实例。如果您未指定任一时间，则此解决方案将使用一周中的某几天、一月中的某天或几个月的规则来根据需要在每天 beginning/end 的某一天开始和停止实例。

时段的 `begintime` 和 `endtime` 值必须在计划中指定的时区内。如果未在计划中指定时区，此解决方案将使用您启动它时指定的时区。

如果您的计划包含多个时段，建议您始终在时段中同时指定 `begintime` 和 `endtime`。

如果您在指定的启动时间之前启动实例，该实例将一直运行，直到运行时段结束。例如，用户可以定义一个时段，让实例每天上午 9 点启动，并在下午 5 点停止。

 **计划的启动时间为上午 9 点，停止时间为下午 5 点** 

![\[image6\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/instance-scheduler-on-aws/images/image6.png)


如果您在凌晨 5 点手动启动实例，解决方案将在下午 5 点停止实例。如果您使用[保持运行字段](schedule-reference.md#retain-running-field)，解决方案将不会在下午 5 点停止实例。

 **计划的停止时间为凌晨 5 点** 

![\[image7\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/instance-scheduler-on-aws/images/image7.png)


如果您在指定的停止时间之前停止实例，实例将不会运行，直到下一个运行时段开始。延续前面的示例，如果用户在星期三下午 1 点停止实例，解决方案要到星期四上午 9 点才会启动实例。

 **时间线显示计划的启动时间为上午 9 点，手动停止时间为下午 1 点，计划的停止时间为下午 5 点。**

![\[image8\]](http://docs.aws.amazon.com/zh_cn/solutions/latest/instance-scheduler-on-aws/images/image8.png)


### 相邻时段
<a name="adjacent-periods"></a>

如果计划包含两个相邻的运行时段，解决方案将不会停止正在运行的实例。例如，如果计划中的一个时段的 `endtime` 为晚上 11:59，另一个时段的 `begintime` 为第二天的午夜，则解决方案将不会停止正在运行的实例（如果没有用来停止实例的 `weekdays`、`monthdays` 或 `months` 规则）。

要实施从星期一上午 9 点至星期五下午 5 点运行实例的计划，解决方案需要配置三个时段。第一个时段：适用的实例从星期一上午 9 点运行至晚上 11:59。第二个时段：实例从星期二午夜运行至星期四晚上 11:59。第三个时段：实例从星期五午夜运行至下午 5 点。有关更多信息，请参阅[示例计划](sample-schedules.md)。

## 星期几
<a name="days-of-the-week"></a>

`weekdays` 字段用于定义实例每周运行的具体日期。您可以指定日期列表、日期范围、某个日期在一个月内的第 N 次出现，或某个日期在一个月内的最后一次出现。该解决方案支持缩写的日期名称（Mon）和数字（0）。

## 月中日期
<a name="days-of-the-month"></a>

`monthdays` 字段用于定义实例每月运行的具体日期。您可以指定日期列表、日期范围、每月的第 N 天、每月的最后一天，或某个特定日期的最近工作日。

## 月份
<a name="months"></a>

`months` 字段用于定义实例运行的具体月份。您可以指定月份列表、月份范围，或每 N 个月。该解决方案支持缩写的月份名称（Jan）和数字（1）。

## 时段定义
<a name="period-definitions"></a>

Amazon DynamoDB 中的 AWS 实例计划程序配置表包含时段定义。一个时段定义可包含以下字段。请注意，某些字段支持 [Cron 非标准字符](https://en.wikipedia.org/wiki/Cron#Non-Standard_Characters)。

**重要**  
您必须指定以下至少一个项：begintime、endtime、weekdays、months 或 monthdays。


| 字段 | 说明 | 
| --- | --- | 
|   `begintime`   |  实例的启动时间（采用 **HH:MM** 格式）。  | 
|   `description`   |  时段的可选描述。  | 
|   `endtime`   |  实例的停止时间（采用 **HH:MM** 格式）。  | 
|   `months`   |  输入实例将运行的月份的逗号分隔列表，或用连字符连接的月份范围。例如，输入 `jan, feb, mar` 或 `1, 2, 3` 可在这些月份内运行实例。或者，您可以输入 `jan-mar` 或 `1-3`。 您也可以将实例设置为每 N 个月运行一次，或在某个月份范围内每 N 个月运行一次。例如，输入 `Jan/3` 或 `1/3` 可从 1 月开始每 3 个月运行一次实例。输入 `Jan-Jul/2` 可在 1 月到 7 月期间每隔 1 个月运行一次实例。  | 
|   `monthdays`   |  输入实例将运行的每月日期的逗号分隔列表，或用连字符连接的日期范围。例如，输入 `1, 2, 3` 或 `1-3` 可在每月的前三天运行实例。您也可以输入多个范围。例如，输入 `1-3`、`7-9` 可在每月 1 日至 3 日以及 7 日至 9 日运行实例。 您还可以将实例设置为每月的第 N 天运行，或在某个日期范围内每月的第 N 天运行。例如，输入 `1/7` 可从 1 日开始每 7 天运行一次实例。输入 `1-15/2` 可在 1 日至 15 日期间每隔 1 天运行一次实例。 输入 `L` 可在每月的最后一天运行实例。输入日期和 W 可在该指定日期的最近工作日运行实例。例如，输入 `15W` 可在每月 15 日的最近工作日运行实例。  | 
|   `name`   |  用于标识时段的名称。此名称必须是唯一的，并且仅包含字母数字、连字符（-）和下划线（\$1）。  | 
|   `weekdays`   |  输入实例将运行的星期几的逗号分隔列表，或星期几范围。例如，输入 `0, 1, 2` 或 `0-2` 可在星期一至星期三运行实例。您也可以输入多个范围。例如，输入 `0-2`、`4-6` 可每天（星期四除外）运行实例。 您还可以将实例设置为在每月的第 N 个指定星期几运行。例如，输入 `Mon#1` 或 `0#1` 可在每月的第一个星期一运行实例。 输入某个星期几和 L 可在每月该星期几的最后一次出现时运行实例。例如，输入 `friL` 或 `4L` 可在每月的最后一个星期五运行实例。  | 

当一个时段包含多个条件时，请注意，只有满足所有条件后，AWS 实例计划程序才会应用相应的操作。例如，`weekdays` 字段值为 `Mon#1` 且 months 字段值为 `Jan/3` 的时段将在每个季度的第一个星期一应用操作。