时段参考 - AWS 实例计划程序

时段参考

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

启动时间和停止时间

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

同样地,如果您仅指定停止时间,则必须手动启动实例。如果您未指定任一时间,此解决方案会根据星期几、月中日期或月份规则,在每天的开始或结束时相应地启动或停止实例。

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

如果您的计划包含多个时段,建议您始终在时段中同时指定 begintimeendtime

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

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

image6

如果您在凌晨 5 点手动启动实例,解决方案将在下午 5 点停止实例。如果您使用保持运行字段,解决方案将不会在下午 5 点停止实例。

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

image7

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

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

image8

相邻时段

如果计划包含两个相邻的运行时段,解决方案将不会停止正在运行的实例。例如,如果计划中的一个时段的 endtime 为晚上 11:59,另一个时段的 begintime 为第二天的午夜,则解决方案将不会停止正在运行的实例(如果没有用来停止实例的 weekdaysmonthdaysmonths 规则)。

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

星期几

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

月中日期

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

月份

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

时段定义

Amazon DynamoDB 中的 AWS 实例计划程序配置表包含时段定义。一个时段定义可包含以下字段。请注意,某些字段支持 Cron 非标准字符

重要

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

字段 描述

begintime

实例的启动时间(采用 HH:MM 格式)。

description

时段的可选描述。

endtime

实例的停止时间(采用 HH:MM 格式)。

months

输入实例将运行的月份的逗号分隔列表,或用连字符连接的月份范围。例如,输入 jan, feb, mar1, 2, 3 可在这些月份内运行实例。或者,您可以输入 jan-mar1-3

您也可以将实例设置为每 N 个月运行一次,或在某个月份范围内每 N 个月运行一次。例如,输入 Jan/31/3 可从 1 月开始每 3 个月运行一次实例。输入 Jan-Jul/2 可在 1 月到 7 月期间每隔 1 个月运行一次实例。

monthdays

输入实例将运行的每月日期的逗号分隔列表,或用连字符连接的日期范围。例如,输入 1, 2, 31-3 可在每月的前三天运行实例。您也可以输入多个范围。例如,输入 1-37-9 可在每月 1 日至 3 日以及 7 日至 9 日运行实例。

您还可以将实例设置为每月的第 N 天运行,或在某个日期范围内每月的第 N 天运行。例如,输入 1/7 可从 1 日开始每 7 天运行一次实例。输入 1-15/2 可在 1 日至 15 日期间每隔 1 天运行一次实例。

输入 L 可在每月的最后一天运行实例。输入日期和 W 可在该指定日期的最近工作日运行实例。例如,输入 15W 可在每月 15 日的最近工作日运行实例。

name

用于标识时段的名称。此名称必须是唯一的,并且仅包含字母数字、连字符(-)和下划线(_)。

weekdays

输入实例将运行的星期几的逗号分隔列表,或星期几范围。例如,输入 0, 1, 20-2 可在星期一至星期三运行实例。您也可以输入多个范围。例如,输入 0-24-6 可每天(星期四除外)运行实例。

您还可以将实例设置为在每月的第 N 个指定星期几运行。例如,输入 Mon#10#1 可在每月的第一个星期一运行实例。

输入某个星期几和 L 可在每月该星期几的最后一次出现时运行实例。例如,输入 friL4L 可在每月的最后一个星期五运行实例。

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

自动标记

AWS 实例计划程序可自动为其启动或停止的所有实例添加标签。您可以在已启动标签已停止标签参数中,指定标签名称或 tagname=tagvalue 对的列表。该解决方案还包含宏,可让您在标签中添加变量信息:

  • {scheduler}:计划程序堆栈的名称

  • {year}:年份(4 位数字)

  • {month}:月份(2 位数字)

  • {day}:日期(2 位数字)

  • {hour}:小时(2 位数字,24 小时制)

  • {minute}:分钟(2 位数字)

  • {timeszone}:时区

下表提供了不同输入与生成的标签的示例。

输入参数示例 实例计划程序标签

ScheduleMessage=Started by scheduler {scheduler}

ScheduleMessage=Started by scheduler MyScheduler

ScheduleMessage=Started on {year}/{month}/{day}

`ScheduleMessage=Started on 2017/07/06 `

ScheduleMessage=Started on {year}/{month}/{day} at {hour}:{minute}

ScheduleMessage=Started on 2017/07/06 at 09:00

ScheduleMessage=Started on {year}/{month}/{day} at {hour}:{minute} {timezone}

ScheduleMessage=Started on 2017/07/06 at 09:00 UTC

如果使用的是已启动标签参数,当计划程序停止实例时,标签会被自动删除。如果使用的是已停止标签参数,当启动实例时,标签会被自动删除。