

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

# 计划推理
<a name="schedule-reference"></a>

计划可指定带有该计划标签的实例应何时运行。每个计划都必须有一个唯一的名称，该名称将用作标签*值*来标识要应用于已标记的资源的计划。

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

每个计划必须包含至少一个时段，该时段用于定义实例应运行的时间。一个计划可包含多个时段。当一个计划中使用了多个时段时，AWS 实例计划程序将在满足至少一个时段的条件时应用对应的启动操作。有关更多信息，请参阅[时段参考](period-reference.md)。

## 时区
<a name="time-zone"></a>

您也可以为计划指定时区。如果未指定时区，则计划将使用您在启动解决方案时指定的默认时区。有关可接受的时区值的列表，请参阅 [List of TZ database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) 的 **TZ** 列。

## “停止新实例” 字段
<a name="stop-new-instances-field"></a>

stop\$1new\$1instances 字段用于控制如果实例当前在运行期之外运行，则实例调度器是否应在首次标记为计划时将其停止。默认情况下，此字段设置为 true。

设置为 true 时，如果您标记的正在运行的实例已超出其预定运行时间，则实例计划程序将立即停止该实例。当设置为 false 时，实例调度器将使实例保持运行状态，直到下一个预定的停止时间。

## 休眠字段
<a name="hibernate-field"></a>

hibernate 字段可让您对已停止的 Amazon EC2 实例使用休眠。如果将此字段设置为 true，您的 EC2 实例必须使用支持休眠的亚马逊机器映像（AMI）。有关更多信息，请参阅 *Amazon EC2 用户指南 AMIs*中的 “[支持的 Linux](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html#hibernation-prereqs-supported-amis)”。休眠会将实例内存（RAM）中的内容保存到您的 Amazon Elastic Block Store（Amazon EBS）根卷。如果将此字段设置为 true，当解决方案停止实例时，实例将进入休眠状态而不是直接停止。

如果您将解决方案设置为使用休眠，但未为实例[配置休眠](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/enabling-hibernation.html)或实例未达到[休眠先决条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/hibernating-prerequisites.html)，则解决方案会记录一条警告，并且实例将直接停止，而不进入休眠状态。有关更多信息，请参阅《Amazon EC2 用户指南》**中的[将您的按需型实例或竞价型实例休眠](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html)。

## 强制执行字段
<a name="enforced-field"></a>

计划包含一个 enforced 字段，该字段可让您防止实例在运行时段之外被手动启动，或在运行时段内被手动停止。如果将此字段设置为 true，当用户在运行时段之外手动启动实例时，解决方案将停止实例。如果将此字段设置为 true，当实例在运行时段内被手动停止时，解决方案还会重启实例。

## 保持运行字段
<a name="retain-running-field"></a>

如果实例在运行时段开始前已被手动启动，retain\$1running 字段可防止解决方案在运行时段结束时停止实例。例如，如果某个实例的运行时段为上午 9 点至下午 5 点，该实例在上午 9 点前被手动启动，则解决方案将不会在下午 5 点停止该实例。

## Systems Manager 维护时段字段（仅适用于 EC2 实例）
<a name="systems-manager-maintenance-window-field-only-applies-to-ec2-instances"></a>

该 ssm-maintenance-window字段允许您自动将 AWS Systems Manager 维护时段作为运行时段添加到计划中。当您指定与 Amazon EC2 实例位于同一账户和 AWS 区域的维护时段的名称时，该解决方案会在维护时段开始前至少 10 分钟启动实例；如果没有其他运行时段指定该实例应保持运行，该解决方案会在维护时段结束时停止实例。

一旦创建 SSM 维护时段，且计划中配置了该 SSM 维护时段的名称，Lambda 将在下次按计划运行时获取这些更改。例如，如果您为计划程序 Lambda 选择了 5 分钟的运行频率，该 Lambda 会在下一个 5 分钟间隔内获取维护时段的更改。

AWS 实例计划程序将确保您的实例在维护时段开始前至少 10 分钟启动。根据您为**计划间隔** AWS CloudFormation 参数设置的值，这可能会导致您的实例在维护时段开始前 10 分钟以上启动间隔，以保证实例至少提前 10 分钟启动。例如，如果您将计划间隔设置为 30 分钟，计划程序将在维护时段开始前的 10 至 40 分钟之间启动实例。

**注意**  
要使用此功能，必须将解决方案中心堆栈中的启用 EC2 SSM 维护 Windows CloudFormation 参数设置为`yes`。

有关更多信息，请参阅《AWS Systems Manager 用户指南》**中的 [AWS Systems Manager Maintenance Windows](https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-maintenance.html)。

## 实例类型
<a name="instance-type"></a>

仅对于 Amazon EC2 实例，计划允许您为计划中的每个时段指定一个可选的所需实例类型。当您在时段内指定实例类型时，解决方案将自动调整 EC2 实例的大小，使其与请求的实例类型匹配。

要指定实例类型，请使用语法 *<period-name>@<instance-type>*。例如 `weekends@t2.nano`。请注意，如果您为同时计划 Amazon EC2 实例和 Amazon RDS 实例的时段指定一个实例类型，该实例类型将对 Amazon RDS 实例不生效。

如果正在运行的实例的实例类型与为该时段指定的实例类型不同，解决方案将停止正在运行的实例，并使用指定的实例类型重新启动实例。有关更多信息，请参阅《适用于 Linux 实例的 Amazon EC2 用户指南》**中的[更改实例类型](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-resize.html#resize-limitations)。

## 计划定义
<a name="schedule-definitions"></a>

Amazon DynamoDB 中的 AWS 实例计划程序配置表包含计划定义。计划定义可包含以下字段：


| 字段 | 说明 | 
| --- | --- | 
|   `description`   |  计划的可选描述。  | 
|   `hibernate`   |  选择是否将运行 Amazon Linux 的 Amazon EC2 实例休眠。当此字段设置为 true 时，计划程序将在停止实例时将其休眠。请注意，您的实例必须[启用休眠](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#enabling-hibernation)且必须满足[休眠先决条件](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Hibernate.html#hibernating-prerequisites)。  | 
|   `enforced`   |  选择是否强制实施计划。当此字段设置为 true 时，如果在运行时段之外手动启动正在运行的实例，则计划程序将停止该实例；而如果实例在运行时段内手动停止，计划程序将启动该实例。  | 
|   `name`   |  用于标识计划的名称。此名称必须是唯一的，并且仅包含字母数字、连字符（-）和下划线（\$1）。  | 
|   `periods`   |  此计划中使用的时段的名称。请严格按照时段名称字段中显示的内容输入一个或多个名称。 您也可以使用语法 *<period-name>@<instance-type>* 为时段指定实例类型。例如 `weekdays@t2.large`。  | 
|   `retain_running`   |  选择是否阻止解决方案在运行时段结束时停止实例（如果实例已是在该运行时段开始前被手动启动）。  | 
|   `use_maintenance_window`   |  选择是将 Amazon RDS 维护时段作为运行时段纳入 Amazon RDS 实例计划，还是将 AWS Systems Manager 维护时段作为运行时段纳入 Amazon EC2 实例计划。该字段默认处于启用状态，将其值设为“false”即可禁用。  | 
|   `ssm_maintenance_window`   |  选择是否将 AWS Systems Manager 维护时段作为额外运行时段添加到此计划中。接受维护 StringSet 时段名称，该名称将与计划的 EC2 实例中的窗口名称相匹配。 account/region   **注意：**此功能仅适用于 EC2 实例。  | 
|   `stop_new_instances`   |  选择是否在首次标记实例时将其停止（如果实例在运行时段之外运行）。默认情况下，此字段设置为 true。  | 
|   `timezone`   |  计划将使用的时区。如果未指定时区，则使用默认时区（UTC）。有关可接受的时区值的列表，请参阅 [List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones) 的 **TZ** 列。  | 
|   `use_metrics`   |  选择是否在计划级别开启 CloudWatch 指标。此字段会覆盖您在部署时指定的 CloudWatch 指标设置。  **注意：**启用此功能将产生费用，标准为每个计划或计划服务每月 0.90 美元。  | 