维护时段计划和活动期间选项 - AWS Systems Manager

维护时段计划和活动期间选项

创建维护时段时,必须使用 Cron 或 Rate 表达式指定维护时段运行的频率。您可以选择性地指定维护时段依据其定期计划运行的日期范围,以及该定期计划所基于的时区。

但请注意,时区选项以及开始日期和结束日期选项彼此互不影响。指定的任何开始日期和结束日期时间(包含或不包含时区偏移量)仅确定维护时段定期运行的有效期间。时区选项确定维护时段计划在有效期间 所基于的国际时区。

注意

请以 ISO-8601 时间戳格式指定开始日期和结束日期。例如:2021-04-07T14:29:00-08:00

请以互联网编号分配机构 (IANA) 格式指定时区。例如:America/ChicagoEurope/BerlinAsia/Tokyo

示例 1:指定维护时段的开始日期

假设您使用 AWS Command Line Interface (AWS CLI) 创建一个具有以下选项的维护时段:

  • --start-date 2021-01-01T00:00:00-08:00

  • --schedule-timezone "America/Los_Angeles"

  • --schedule "cron(0 09 ? * WED *)"

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-LAX-Maintenance-Window" \ --allow-unassociated-targets \ --duration 3 \ --cutoff 1 \ --start-date 2021-01-01T00:00:00-08:00 \ --schedule-timezone "America/Los_Angeles" \ --schedule "cron(0 09 ? * WED *)"
Windows
aws ssm create-maintenance-window ^ --name "My-LAX-Maintenance-Window" ^ --allow-unassociated-targets ^ --duration 3 ^ --cutoff 1 ^ --start-date 2021-01-01T00:00:00-08:00 ^ --schedule-timezone "America/Los_Angeles" ^ --schedule "cron(0 09 ? * WED *)"

这意味着维护时段只有在到达其指定的开始日期和时间(即美国太平洋时间 2021 年 1 月 1 日星期五中午 12:00)之后 才会首次运行。(此时区比 UTC 时间晚 8 个小时。) 在这种情况下,时段的开始日期和时间不表示维护时段首次运行的时间。总的来说,--schedule-timezone--schedule 值意味着维护时段将在美国太平洋时区(以 IANA 格式“America/Los Angeles”表示)每个星期三的上午 9 点运行。允许时段内的首次执行时间将为美国太平洋时间 2021 年 1 月 4 日星期三上午 9 点。

示例 2:指定维护时段的开始日期和结束日期

假设您接下来创建一个具有以下选项的维护时段:

  • --start-date 2019-01-01T00:03:15+09:00

  • --end-date 2019-06-30T00:06:15+09:00

  • --schedule-timezone "Asia/Tokyo"

  • --schedule "rate(7 days)"

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-NRT-Maintenance-Window" \ --allow-unassociated-targets \ --duration 3 \ --cutoff 1 \ --start-date 2019-01-01T00:03:15+09:00 \ --end-date 2019-06-30T00:06:15+09:00 \ --schedule-timezone "Asia/Tokyo" \ --schedule "rate(7 days)"
Windows
aws ssm create-maintenance-window ^ --name "My-NRT-Maintenance-Window" ^ --allow-unassociated-targets ^ --duration 3 ^ --cutoff 1 ^ --start-date 2019-01-01T00:03:15+09:00 ^ --end-date 2019-06-30T00:06:15+09:00 ^ --schedule-timezone "Asia/Tokyo" ^ --schedule "rate(7 days)"

此维护时段的允许时段于日本标准时间 2019 年 1 月 1 日凌晨 3:15 开始。此维护时段的有效期间于日本标准时间 2019 年 6 月 30 日凌晨 6:15 结束。(此时区比 UTC 时间早 9 个小时。) 总的来说,--schedule-timezone--schedule 值意味着维护时段将在日本标准时区(以 IANA 格式“Asia/Tokyo”表示)每个星期二的凌晨 3:15 运行。这是因为维护时段每七天运行一次,并且于 1 月 1 日星期二凌晨 3:15 变为活动状态。最后一次执行时间为日本标准时间 2019 年 6 月 25 日星期二凌晨 3:15。这是允许的维护时段期限在五天后结束前的最后一个星期二。

示例 3:创建仅运行一次的维护时段

现在,您可以创建具有此选项的维护时段:

  • --schedule "at(2020-07-07T15:55:00)"

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-One-Time-Maintenance-Window" \ --schedule "at(2020-07-07T15:55:00)" \ --duration 5 \ --cutoff 2 \ --allow-unassociated-targets
Windows
aws ssm create-maintenance-window ^ --name "My-One-Time-Maintenance-Window" ^ --schedule "at(2020-07-07T15:55:00)" ^ --duration 5 ^ --cutoff 2 ^ --allow-unassociated-targets

此维护时段仅运行一次,即在 2020 年 7 月 7 日下午 3:55(UTC 时间)运行。根据需要允许维护时段运行最多 5 小时,但在维护时段期限结束前的两小时禁止开始新任务。

示例 4:指定维护时段的计划偏移天数

现在,您可以创建具有此选项的维护时段:

--schedule-offset 2

例如:

Linux & macOS
aws ssm create-maintenance-window \ --name "My-Cron-Offset-Maintenance-Window" \ --schedule "cron(0 30 23 ? * TUE#3 *)" \ --duration 4 \ --cutoff 1 \ --schedule-offset 2 \ --allow-unassociated-targets
Windows
aws ssm create-maintenance-window ^ --name "My-Cron-Offset-Maintenance-Window" ^ --schedule "cron(0 30 23 ? * TUE#3 *)" ^ --duration 4 ^ --cutoff 1 ^ --schedule-offset 2 ^ --allow-unassociated-targets

计划偏移是在运行维护时段之前但在 CRON 表达式指定的日期和时间之后等待的天数。

在上面的示例中,CRON 表达式计划一个维护时段,在每月第三个星期二的晚上 11:30 运行:

--schedule "cron(0 30 23 ? * TUE#3 *)

但是,包括 --schedule-offset 2 表示维护时段要到每月第三个星期二之后 两天的晚上 11:30 才会运行。

仅针对 CLEN 表达式支持计划偏移。

更多信息