为会影响 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
-
创建事件窗口
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Events。
-
选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)。
-
选择 Create instance event window (创建实例事件窗口)。
-
对于 Event window name (事件窗口名称),输入事件窗口的描述性名称。
-
对于 Event window schedule (事件窗口时间表),选择通过使用 Cron schedule builder(Cron 计划生成器)或指定时间范围来指定事件窗口中的时间块。
-
如果选择 Cron schedule builder (Cron 计划生成器),请指定以下内容:
-
对于 Days (UTC) (天数(UTC)),请指定发生事件窗口的具体日期。
-
对于 Start time (UTC) (开始时间(UTC)),请指定事件窗口开始的时间。
-
对于 Duration (持续时间),请指定事件窗口中时间块的持续时间。每个时间块的最短持续时间为 2 小时。事件窗口的最短持续时间总计必须等于或超过 4 小时。所有时间均采用 UTC。
-
-
如果选择 Time ranges (时间范围),选择 Add new time range (添加新时间范围),并指定开始以及结束日期和时间。每个时间范围重复此操作。每个时间范围的最短持续时间为 2 小时。所有时间范围总计最小持续时间必须等于或超过 4 小时。
-
-
(可选)对于 Target details (目标详细信息),将一个或多个实例与事件窗口相关联,这样如果计划维护实例,计划事件将在关联的事件窗口期间发生。您可以使用实例 ID 或实例标签将一个或多个实例与事件窗口相关联。您可以使用主机 ID 将专属主机与事件窗口相关联。
请注意,您可以在不将目标与窗口关联的情况下创建事件窗口。稍后,您可以修改窗口以关联一个或多个目标。
-
(可选)对于 Event window tags (事件窗口标签),选择 Add tag (添加标签),然后输入标签键和值。对每个标签重复此操作。
-
选择 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
}]" \ --namemyEventWindowName
预期输出
{ "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
}]" \ --namemyEventWindowName
预期输出
{ "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-idiew-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-idiew-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-idiew-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
-
查看事件窗口
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Events。
-
选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)。
-
选择事件窗口以查看其详细信息。
- 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-idiew-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-results100
\ --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
-
修改事件窗口
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Events。
-
选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)。
-
选择要修改的事件窗口,然后选择 Actions (操作)、Modify instance event window (修改实例事件窗口)。
-
在事件窗口中修改字段,然后选择 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-idiew-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-idiew-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-idiew-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-idiew-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-idiew-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-idiew-0abcdef1234567890
\ --association-target DedicatedHostIds=h-029fa35a02b99801d
预期输出
{ "InstanceEventWindow": { "InstanceEventWindowId": "iew-0abcdef1234567890", "Name": "myEventWindowName", "CronExpression": "* 21-23 * * 2,3", "AssociationTarget": { "InstanceIds": [], "Tags": [], "DedicatedHostIds": [] }, "State": "creating" } }
删除事件窗口
您可以使用以下方法之一,一次删除一个事件窗口。
- Console
-
删除事件窗口
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Events。
-
选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)。
-
选择要删除的事件窗口,然后选择 Actions (操作)、Delete instance event window (删除实例事件窗口)。
-
当系统提示时,输入
delete
,然后选择删除。
- Amazon CLI
-
删除事件窗口
使用 delete-instance-event-window 命令并指定要删除的事件窗口。
aws ec2 delete-instance-event-window \ --region
us-east-1
\ --instance-event-window-idiew-0abcdef1234567890
强制删除事件窗口
使用
--force-delete
参数(如果事件窗口当前与目标相关联)。aws ec2 delete-instance-event-window \ --region
us-east-1
\ --instance-event-window-idiew-0abcdef1234567890
\ --force-delete预期输出
{ "InstanceEventWindowState": { "InstanceEventWindowId": "iew-0abcdef1234567890", "State": "deleting" } }
标记事件窗口
您可以在创建事件窗口时或之后对其进行标记。
要在创建事件窗口时对其进行标记,请参阅 创建事件窗口。
使用以下方法之一标记事件窗口。
- Console
-
标记现有事件窗口
通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/
。 -
在导航窗格中,选择 Events。
-
选择 Actions (操作),然后选择 Manage event windows (管理事件窗口)。
-
选择要标记的事件窗口,然后选择 Actions (操作)、Manage instance event window (管理实例事件窗口)。
-
选择 Add tag (添加标签) 标记该窗口。对每个标签重复此操作。
-
选择保存。
- Amazon CLI
-
标记现有事件窗口
使用 create-tags 命令标记现有的资源。在以下示例中,使用以下标签标记现有事件窗口:键=目的,值=测试。
aws ec2 create-tags \ --resources
iew-0abcdef1234567890
\ --tags Key=purpose
,Value=test