为会影响 Amazon EC2 实例的计划事件创建自定义事件窗口 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

为会影响 Amazon EC2 实例的计划事件创建自定义事件窗口

您可以为重新启动、停止或终止 Amazon EC2 实例的计划事件定义自定义事件窗口。您可以将一个或多个实例与事件窗口关联。如果计划了这些实例的计划事件,Amazon 将在关联事件窗口中调度事件。

通过指定工作负载在非高峰期间发生的事件窗口,可以使用事件窗口最大化工作负载可用性。您还可以将事件窗口与内部维护计划保持一致。

您可以通过指定一组时间范围来定义事件窗口。最短持续时间为 2 小时。总计组合时间范围必须至少为 4 小时。

您可以使用实例 ID 或实例标签将一个或多个实例与事件窗口相关联。您还可以使用主机 ID 将专属主机与事件窗口相关联。

警告

事件窗口仅适用于停止、重新启动或终止实例的计划事件。

事件窗口适用于:

  • 加速计划事件和网络维护事件。

  • 未计划维护,如 AutoRecovery 和未计划重新启动。

注意事项

  • 所有事件窗口均采用 UTC 时间。

  • 每周活动窗口的最短持续时间为 4 小时。

  • 事件窗口内的时间范围必须至少为 2 小时。

  • 一个事件窗口只能关联一个目标类型(实例 ID、专属主机 ID 或实例标签)。

  • 一个目标(实例 ID、专属主机 ID 或实例标签)只能关联一个事件窗口。

  • 一个事件窗口最多可以关联 100 个实例 ID 或 50 个专属主机 ID 或 50 个实例标签。实例标签可以关联任意数量的实例。

  • 每个 Amazon 区域最多可以创建 200 个事件窗口。

  • 与事件窗口关联的多个实例可能会同时发生计划的事件。

  • 如果 Amazon 已计划事件,修改事件窗口不会更改计划事件的时间。如果事件有截止日期,您可以重新计划事件

  • 您可以在计划事件发生之前停止和启动实例,将实例迁移到新主机,且计划事件不再发生。

创建事件窗口

您可以创建一个或多个事件窗口。对于每个事件窗口,您可以指定一个或多个时间块。例如,您可以创建一个带有时间块的事件窗口,发生于每天凌晨 4 点,持续 2 个小时。或者,您可以创建一个带有时间块的事件窗口,发生于星期日凌晨 2 点至凌晨 4 点以及星期三凌晨 3 点至凌晨 5 点。

有关事件窗口约束,请参阅本主题之前所述的 注意事项

事件窗口每周重复出现,直至将其删除。

使用以下方法之一创建事件窗口:

Console
创建事件窗口
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events

  3. 选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)

  4. 选择 Create instance event window (创建实例事件窗口)

  5. 对于 Event window name (事件窗口名称),输入事件窗口的描述性名称。

  6. 对于 Event window schedule (事件窗口时间表),选择通过使用 Cron schedule builder(Cron 计划生成器)或指定时间范围来指定事件窗口中的时间块。

    • 如果选择 Cron schedule builder (Cron 计划生成器),请指定以下内容:

      1. 对于 Days (UTC) (天数(UTC)),请指定发生事件窗口的具体日期。

      2. 对于 Start time (UTC) (开始时间(UTC)),请指定事件窗口开始的时间。

      3. 对于 Duration (持续时间),请指定事件窗口中时间块的持续时间。每个时间块的最短持续时间为 2 小时。事件窗口的最短持续时间总计必须等于或超过 4 小时。所有时间均采用 UTC。

    • 如果选择 Time ranges (时间范围),选择 Add new time range (添加新时间范围),并指定开始以及结束日期和时间。每个时间范围重复此操作。每个时间范围的最短持续时间为 2 小时。所有时间范围总计最小持续时间必须等于或超过 4 小时。

  7. (可选)对于 Target details (目标详细信息),将一个或多个实例与事件窗口相关联,这样如果计划维护实例,计划事件将在关联的事件窗口期间发生。您可以使用实例 ID 或实例标签将一个或多个实例与事件窗口相关联。您可以使用主机 ID 将专属主机与事件窗口相关联。

    请注意,您可以在不将目标与窗口关联的情况下创建事件窗口。稍后,您可以修改窗口以关联一个或多个目标。

  8. (可选)对于 Event window tags (事件窗口标签),选择 Add tag (添加标签),然后输入标签键和值。对每个标签重复此操作。

  9. 选择 Create event window (创建事件窗口)

Amazon CLI

要使用 Amazon CLI 创建事件窗口,首先要创建事件窗口,然后您将一个或多个目标与事件窗口相关联。

创建事件窗口

您可以在创建事件窗口时定义一组时间范围或 Cron 表达式,但不能同时定义两者。

创建有时间范围的事件窗口

使用 create-instance-event-window 命令并指定 --time-range 参数。您不能同时指定 --cron-expression 参数。

aws ec2 create-instance-event-window \ --region us-east-1 \ --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8 \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \ --name myEventWindowName

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "TimeRanges": [ { "StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8 } ], "Name": "myEventWindowName", "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }
创建有 Cron 表达式的事件窗口

使用 create-instance-event-window 命令并指定 --cron-expression 参数。您不能同时指定 --time-range 参数。

aws ec2 create-instance-event-window \ --region us-east-1 \ --cron-expression "* 21-23 * * 2,3" \ --tag-specifications "ResourceType=instance-event-window,Tags=[{Key=K1,Value=V1}]" \ --name myEventWindowName

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }
将目标与事件窗口关联

一个事件窗口只能关联一个目标类型(实例 ID、专属主机 ID 或实例标签)。

将实例标签与事件窗口相关联

使用 associate-instance-event-window 命令并指定 instance-event-window-id 参数以指定事件窗口。要关联实例标签,请指定 --association-target 参数,并为参数值指定一个或多个标签。

aws ec2 associate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [ { "Key": "k2", "Value": "v2" }, { "Key": "k1", "Value": "v1" } ], "DedicatedHostIds": [] }, "State": "creating" } }
将一个或多个实例与事件窗口相关联

使用 associate-instance-event-window 命令并指定 instance-event-window-id 参数以指定事件窗口。要关联实例,请指定 --association-target 参数,并为参数值指定一个或多个实例 ID。

aws ec2 associate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [ "i-1234567890abcdef0", "i-0598c7d356eba48d7" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }
将专属主机与事件窗口相关联

使用 associate-instance-event-window 命令并指定 instance-event-window-id 参数以指定事件窗口。要关联专属主机,请指定 --association-target 参数,并为参数值指定一个或多个专属主机 ID。

aws ec2 associate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "DedicatedHostIds=h-029fa35a02b99801d"

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [ "h-029fa35a02b99801d" ] }, "State": "creating" } }

查看事件窗口

您可以使用以下方法之一查看事件窗口。

Console
查看事件窗口
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events

  3. 选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)

  4. 选择事件窗口以查看其详细信息。

Amazon CLI
描述所有事件窗口

使用 describe-instance-event-windows 命令。

aws ec2 describe-instance-event-windows \ --region us-east-1

预期输出

{ "InstanceEventWindows": [ { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [ "i-1234567890abcdef0", "i-0598c7d356eba48d7" ], "Tags": [], "DedicatedHostIds": [] }, "State": "active", "Tags": [] } ... ], "NextToken": "9d624e0c-388b-4862-a31e-a85c64fc1d4a" }
描述特定事件窗口

使用 describe-instance-event-windows 命令与 --instance-event-window-id 参数来描述特定事件窗口。

aws ec2 describe-instance-event-windows \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890
描述符合一个或多个筛选条件的事件窗口

使用 describe-instance-event-windows 命令与 --filters 参数。在下面的示例中,instance-id 筛选条件用于描述与指定实例关联的所有事件窗口。

使用筛选器时,它会进行直接匹配。但是,instance-id 筛选器不同。如果没有与实例 ID 直接匹配,它会回退到与事件窗口的间接关联,例如实例标签或专属主机 ID(如果实例位于专属主机)。

有关支持的筛选器的列表,请参阅 Amazon CLI 参考中的 describe-instance-event-windows

aws ec2 describe-instance-event-windows \ --region us-east-1 \ --filters Name=instance-id,Values=i-1234567890abcdef0 \ --max-results 100 \ --next-token <next-token-value>

预期输出

在以下示例中,实例位于与事件窗口关联的专属主机上。

{ "InstanceEventWindows": [ { "InstanceEventWindowId": "iew-0dbc0adb66f235982", "TimeRanges": [ { "StartWeekDay": "sunday", "StartHour": 2, "EndWeekDay": "sunday", "EndHour": 8 } ], "Name": "myEventWindowName", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [ "h-0140d9a7ecbd102dd" ] }, "State": "active", "Tags": [] } ] }

修改事件窗口

您可以修改事件窗口中除 ID 之外的所有字段。例如,夏令时开始时,您可能需要修改事件窗口计划。对于现有事件窗口,您可能需要添加或移除目标。

使用以下方法之一修改事件窗口:

Console
修改事件窗口
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events

  3. 选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)

  4. 选择要修改的事件窗口,然后选择 Actions (操作)Modify instance event window (修改实例事件窗口)

  5. 在事件窗口中修改字段,然后选择 Modify event window (修改事件窗口)

Amazon CLI

要使用 Amazon CLI 修改事件窗口,您可以修改时间范围或 Cron 表达式,并将一个或多个目标与事件窗口关联或取消关联。

修改事件窗口时间

您可以在修改事件窗口时修改时间范围或 Cron 表达式,但不能同时修改两者。

修改事件窗口的时间范围

使用 modify-instance-event-window 命令并指定要修改的事件窗口。指定 --time-range 参数以修改时间范围。您不能同时指定 --cron-expression 参数。

aws ec2 modify-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --time-range StartWeekDay=monday,StartHour=2,EndWeekDay=wednesday,EndHour=8

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "TimeRanges": [ { "StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8 } ], "Name": "myEventWindowName", "AssociationTarget": { "InstanceIds": [ "i-0abcdef1234567890", "i-0be35f9acb8ba01f0" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }
修改事件窗口的一组时间范围

使用 modify-instance-event-window 命令并指定要修改的事件窗口。指定 --time-range 参数以修改时间范围。您不能在相同调用中同时指定 --cron-expression 参数。

aws ec2 modify-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --time-range '[{"StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8}, {"StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8}]'

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "TimeRanges": [ { "StartWeekDay": "monday", "StartHour": 2, "EndWeekDay": "wednesday", "EndHour": 8 }, { "StartWeekDay": "thursday", "StartHour": 2, "EndWeekDay": "friday", "EndHour": 8 } ], "Name": "myEventWindowName", "AssociationTarget": { "InstanceIds": [ "i-0abcdef1234567890", "i-0be35f9acb8ba01f0" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }
修改事件窗口的 Cron 表达式

使用 modify-instance-event-window 命令并指定要修改的事件窗口。指定 --cron-expression 参数以修改 Cron 表达式。您不能同时指定 --time-range 参数。

aws ec2 modify-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --cron-expression "* 21-23 * * 2,3"

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [ "i-0abcdef1234567890", "i-0be35f9acb8ba01f0" ], "Tags": [], "DedicatedHostIds": [] }, "State": "creating", "Tags": [ { "Key": "K1", "Value": "V1" } ] } }
修改与事件窗口关联的目标

您可以将其他目标与事件窗口相关联。您还可以取消现有目标与事件窗口的关联。但是,一个事件窗口只能关联一个目标类型(实例 ID、专属主机 ID 或实例标签)。

将其他目标与事件窗口相关联

有关如何将目标与事件窗口相关联的说明,请参阅 Associate a target with an event window

取消实例标签与事件窗口的关联

使用 disassociate-instance-event-window 命令并指定 instance-event-window-id 参数以指定事件窗口。要取消关联实例标签,请指定 --association-target 参数,并为参数值指定一个或多个标签。

aws ec2 disassociate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceTags=[{Key=k2,Value=v2},{Key=k1,Value=v1}]"

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }
取消一个或多个实例与事件窗口的关联

使用 disassociate-instance-event-window 命令并指定 instance-event-window-id 参数以指定事件窗口。要取消关联实例,请指定 --association-target 参数,并为参数值指定一个或多个实例 ID。

aws ec2 disassociate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target "InstanceIds=i-1234567890abcdef0,i-0598c7d356eba48d7"

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }
取消专属主机与事件窗口的关联

使用 disassociate-instance-event-window 命令并指定 instance-event-window-id 参数以指定事件窗口。要取消关联专属主机,请指定 --association-target 参数,并为参数值指定一个或多个专属主机 ID。

aws ec2 disassociate-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --association-target DedicatedHostIds=h-029fa35a02b99801d

预期输出

{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }

删除事件窗口

您可以使用以下方法之一,一次删除一个事件窗口。

Console
删除事件窗口
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events

  3. 选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)

  4. 选择要删除的事件窗口,然后选择 Actions (操作)Delete instance event window (删除实例事件窗口)

  5. 当系统提示时,输入 delete,然后选择删除

Amazon CLI
删除事件窗口

使用 delete-instance-event-window 命令并指定要删除的事件窗口。

aws ec2 delete-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890
强制删除事件窗口

使用 --force-delete 参数(如果事件窗口当前与目标相关联)。

aws ec2 delete-instance-event-window \ --region us-east-1 \ --instance-event-window-id iew-0abcdef1234567890 \ --force-delete

预期输出

{ "InstanceEventWindowState": { "InstanceEventWindowId": "iew-0abcdef1234567890", "State": "deleting" } }

标记事件窗口

您可以在创建事件窗口时或之后对其进行标记。

要在创建事件窗口时对其进行标记,请参阅 创建事件窗口

使用以下方法之一标记事件窗口。

Console
标记现有事件窗口
  1. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Events

  3. 选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)

  4. 选择要标记的事件窗口,然后选择 Actions (操作)Manage instance event window (管理实例事件窗口)

  5. 选择 Add tag (添加标签) 标记该窗口。对每个标签重复此操作。

  6. 选择保存

Amazon CLI
标记现有事件窗口

使用 create-tags 命令标记现有的资源。在以下示例中,使用以下标签标记现有事件窗口:键=目的,值=测试。

aws ec2 create-tags \ --resources iew-0abcdef1234567890 \ --tags Key=purpose,Value=test