实例刷新示例事件和模式 - Amazon EC2 Auto Scaling

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

实例刷新示例事件和模式

使用 Amazon EventBridge,您可以创建匹配传入事件规则,并将它们路由到目标进行处理。

实例刷新事件

以下示例演示实例刷新功能的事件。事件会尽可能生成。

达到检查点

当已替换的实例数达到为检查点定义的百分比阈值时,Amazon EC2 Auto Scaling 会发出事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Checkpoint Reached", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "ab00cf8f-9126-4f3c-8010-dbb8cad6fb86", "AutoScalingGroupName": "my-asg", "CheckpointPercentage": "50", "CheckpointDelay": "300" } }

实例刷新已开始

Amazon EC2 Auto Scaling 将在实例刷新状态更改为 InProgress 时发出以下事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Started", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade", "AutoScalingGroupName": "my-asg" } }

实例刷新成功

Amazon EC2 Auto Scaling 将在实例刷新状态更改为 Successful 时发出以下事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Succeeded", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade", "AutoScalingGroupName": "my-asg" } }

实例刷新失败

Amazon EC2 Auto Scaling 将在实例刷新状态更改为 Failed 时发出以下事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Failed", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade", "AutoScalingGroupName": "my-asg" } }

实例刷新已取消

Amazon EC2 Auto Scaling 将在实例刷新状态更改为 Cancelled 时发出以下事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Cancelled", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade", "AutoScalingGroupName": "my-asg" } }

实例刷新回滚已开始

Amazon EC2 Auto Scaling 将在实例刷新状态更改为 RollbackInProgress 时发出以下事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Started", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade", "AutoScalingGroupName": "my-asg" } }

实例刷新回滚成功

Amazon EC2 Auto Scaling 将在实例刷新状态更改为 RollbackSuccessful 时发出以下事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Succeeded", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade", "AutoScalingGroupName": "my-asg" } }

实例刷新回滚失败

Amazon EC2 Auto Scaling 将在实例刷新状态更改为 Failed 时发出以下事件。

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Auto Scaling Instance Refresh Rollback Failed", "source": "aws.autoscaling", "account": "123456789012", "time": "yyyy-mm-ddThh:mm:ssZ", "region": "us-west-2", "resources": [ "auto-scaling-group-arn" ], "detail": { "InstanceRefreshId": "c613620e-07e2-4ed2-a9e2-ef8258911ade", "AutoScalingGroupName": "my-asg" } }

实例刷新替换根卷生命周期事件

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

以下示例显示了 Auto Scaling 组中有实例在实例刷新期间进行根卷更换时发生的事件。尽最大努力发布事件。

开始替换根卷生命周期操作

当实例在实例刷新期间选择替换根卷并且其状态更改为ReplacingRootVolume:Wait

{ "version": "0", "id": "12345678-1234-1234-1234-123456789012", "detail-type": "EC2 Instance-terminate 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-terminate-lifecycle-hook", "EC2InstanceId": "i-1234567890abcdef0", "LifecycleTransition": "autoscaling:EC2_INSTANCE_TERMINATING", "NotificationMetadata": "additional-info", "Origin": "AutoScalingGroup", "Destination": "AutoScalingGroup", "Action": "ReplaceRootVolume" } }

结束替换根卷生命周期操作

当实例完成根卷更换且其状态更改为时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": "AutoScalingGroup", "Destination": "AutoScalingGroup", "Action": "ReplaceRootVolume" } }

示例事件模式

上一节提供了 Amazon EC2 Auto Scaling 在使用替换根卷策略的实例刷新期间发出的示例事件。 EventBridge 事件模式与它们匹配的事件具有相同的结构。模式引用了您要匹配的字段,并提供您所查找的值。事件中的下列字段构成规则中定义的事件模式以调用操作:

"source": "aws.autoscaling"

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

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

识别事件类型。

"Action": "ReplaceRootVolume"

标识正在对实例执行的操作。

使用以下示例事件模式捕获与准备替换根卷的实例相关的所有事件:

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

使用以下示例事件模式捕获与完成根卷更换后恢复服务的实例相关的所有事件:

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