暖池示例事件类型和模式 - Amazon EC2 Auto Scaling
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

暖池示例事件类型和模式

Amazon EC2 Auto Scaling 支持亚马逊中的多种预定义模式 EventBridge。这简化了事件模式的创建方式。您可以在表单上选择字段值,然后为您 EventBridge 生成模式。目前,对于具有暖池的自动扩缩组发出的任何事件,Amazon EC2 Auto Scaling 不支持预定义模式。您必须以 JSON 对象的形式输入模式。这一部分和 为温水池活动创建 EventBridge 规则 主题演示例了如何使用事件模式来选择事件并将其发送到目标。

要创建 EventBridge 规则来筛选 Amazon EC2 Auto Scaling 发送到的与温池相关的事件 EventBridge,请在事件detail部分添加OriginDestination字段。

它可以是以下 OriginDestination 值之一:

EC2 | AutoScalingGroup | WarmPool

示例事件

当您向 Auto Scaling 组添加生命周期挂钩时,Amazon EC2 Auto Scaling 会在实例过渡到等待状态 EventBridge时向发送事件。有关更多信息,请参阅 将生命周期钩子与暖池一起使用

本节包含自动扩缩组具有暖池时的这些事件的示例。尽最大努力发布事件。

注意

有关 Amazon EC2 Auto Scaling 在成功扩展 EventBridge 时发送到的事件,请参阅扩缩成功的事件。有关扩缩失败时的事件,请参阅 扩缩失败的事件

横向扩展生命周期操作

当实例在横向扩展时转换为等待状态的情况下,所传递的事件都将 EC2 Instance-launch Lifecycle Action 作为 detail-type 的值。在 detail 对象中,OriginDestination 属性的值显示实例的来源和去向。

在此横向扩展事件示例中,启动了一个新实例,由于该实例已添加到暖池中,因此将其状态更改为 Warmed:Pending:Wait。有关更多信息,请参阅 暖池中实例的生命周期状态转换

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-launch Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "2021-01-13T00:12:37.214Z", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken": "71514b9d-6a40-4b26-8523-05e7eEXAMPLE", "AutoScalingGroupName": "my-asg", "LifecycleHookName": "my-launch-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationMetadata": "additional-info", "Origin": "EC2", "Destination": "WarmPool" } }

在此示例事件中,实例的状态在其被从暖池中添加到自动扩缩组时更改为 Pending:Wait。有关更多信息,请参阅 暖池中实例的生命周期状态转换

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-launch Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "2021-01-19T00:35:52.359Z", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken": "19cc4d4a-e450-4d1c-b448-0de67EXAMPLE", "AutoScalingGroupName": "my-asg", "LifecycleHookName": "my-launch-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_LAUNCHING", "NotificationMetadata": "additional-info", "Origin": "WarmPool", "Destination": "AutoScalingGroup" } }

横向缩减生命周期操作

当实例在横向缩减时转换为等待状态的情况下,所传递的事件都将 EC2 Instance-terminate Lifecycle Action 作为 detail-type 的值。在 detail 对象中,OriginDestination 属性的值显示实例的来源和去向。

在此示例事件中,实例的状态因其被退回到暖池而更改为 Warmed:Pending:Wait。有关更多信息,请参阅 暖池中实例的生命周期状态转换

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-terminate Lifecycle Action", "source": "aws.autoscaling", "account": "123456789012", "time": "2022-03-28T00:12:37.214Z", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "LifecycleActionToken": "42694b3d-4b70-6a62-8523-09a1eEXAMPLE", "AutoScalingGroupName": "my-asg", "LifecycleHookName": "my-termination-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING", "NotificationMetadata": "additional-info", "Origin": "AutoScalingGroup", "Destination": "WarmPool" } }

示例事件模式

前一节提供 Amazon EC2 Auto Scaling 发出的示例事件。

EventBridge 事件模式与它们匹配的事件具有相同的结构。模式引用了您要匹配的字段,并提供您所查找的值。

事件中的下列字段构成规则中定义的事件模式以调用操作:

"source": "aws.autoscaling"

识别来自 Amazon EC2 Auto Scaling 的事件。

"detail-type": "EC2 Instance-launch Lifecycle Action"

识别事件类型。

"Origin": "EC2"

标识实例的来源。

"Destination": "WarmPool"

标识实例的目标位置。

使用以下示例事件模式捕获与进入暖池的实例相关联的所有EC2 Instance-launch Lifecycle Action事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "Origin": [ "EC2" ], "Destination": [ "WarmPool" ] } }

使用以下示例事件模式捕获与因横向扩展事件而离开暖池的实例有关的所有EC2 Instance-launch Lifecycle Action事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "Origin": [ "WarmPool" ], "Destination": [ "AutoScalingGroup" ] } }

使用以下示例事件模式捕获与直接启动到自动扩缩组的实例相关联的所有EC2 Instance-launch Lifecycle Action事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ], "detail": { "Origin": [ "EC2" ], "Destination": [ "AutoScalingGroup" ] } }

使用以下示例事件模式捕获与在横向缩减时退回暖池的实例有关的所有EC2 Instance-terminate Lifecycle Action事件。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-terminate Lifecycle Action" ], "detail": { "Origin": [ "AutoScalingGroup" ], "Destination": [ "WarmPool" ] } }

使用以下示例事件模式捕获与 EC2 Instance-launch Lifecycle Action 关联的所有相关事件,无论起点或目的地如何。

{ "source": [ "aws.autoscaling" ], "detail-type": [ "EC2 Instance-launch Lifecycle Action" ] }