EC2 队列 事件类型 - Amazon Elastic Compute Cloud
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

EC2 队列 事件类型

注意

只有类型 maintainrequest 的队列才能触发事件。类型 instant 的队列不会触发事件,因为它们提交同步一次性请求,并且队列的状态立即可在响应中获知。

EC2 队列 事件类型有五种。对于每种事件类型,都有几个子类型。

事件以 JSON 格式发送到 EventBridge。事件中的下列字段构成规则中定义并触发操作的事件模式:

"source": "aws.ec2fleet"

识别来自 EC2 队列 的事件。

"detail-type": "EC2 Fleet State Change"

识别事件类型。

"detail": { "sub-type": "submitted" }

识别事件子类型。

EC2 队列状态变化

当 EC2 队列 状态变化时,EC2 队列 会将 EC2 Fleet State Change 事件发送到 Amazon EventBridge。

以下是此事件的示例数据。

{ "version": "0", "id": "715ed6b3-b8fc-27fe-fad6-528c7b8bf8a2", "detail-type": "EC2 Fleet State Change", "source": "aws.ec2fleet", "account": "123456789012", "time": "2020-11-09T09:00:20Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a" ], "detail": { "sub-type": "active" } }

sub-type 可使用的值为:

active

EC2 队列 请求已验证,并且 Amazon EC2 正在尝试使正在运行的实例保持目标数量。

deleted

EC2 队列 请求已删除,没有正在运行的实例。EC2 队列 将在其实例终止两天后被删除。

deleted_running

EC2 队列 请求已删除,且不启动其他实例。现有实例将继续运行,直至被中断或终止。请求会保持此状态,直到所有实例都已中断或终止。

deleted_terminating

EC2 队列 请求已删除,正在终止其实例。请求会保持此状态,直到所有实例都已终止。

expired

EC2 队列 请求已过期。如果请求使用 TerminateInstancesWithExpiration 集创建,则随后的 terminated 事件指示实例已终止。

modify_in_progress

正在修改 EC2 队列 请求。请求将保持该状态,直到完全处理修改。

modify_succeeded

EC2 队列 请求已修改。

submitted

EC2 队列 正在接受评估,并且 Amazon EC2 正准备启动目标数量的实例。

progress

该 EC2 队列 请求正在执行过程中。

EC2 实例集竞价型实例请求更改

当队列中的 Spot 实例请求状态变化时,EC2 队列 会将 EC2 Fleet Spot Instance Request Change 事件发送到 Amazon EventBridge。

以下是此事件的示例数据。

{ "version": "0", "id": "19331f74-bf4b-a3dd-0f1b-ddb1422032b9", "detail-type": "EC2 Fleet Spot Instance Request Change", "source": "aws.ec2fleet", "account": "123456789012", "time": "2020-11-09T09:00:05Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-83fd4e48-552a-40ef-9532-82a3acca5f10" ], "detail": { "spot-instance-request-id": "sir-rmqske6h", "description": "SpotInstanceRequestId sir-rmqske6h, PreviousState: cancelled_running", "sub-type": "cancelled" } }

sub-type 可使用的值为:

active

竞价型实例请求已执行并有关联的竞价型实例。

cancelled

您取消了竞价型实例请求,或竞价型实例请求已过期。

disabled

您停止了竞价型实例。

submitted

已提交竞价型实例请求。

EC2 队列实例更改

当队列中的实例状态变化时,EC2 队列 会将 EC2 Fleet Instance Change 事件发送到 Amazon EventBridge。

以下是此事件的示例数据。

{ "version": "0", "id": "542ce428-c8f1-0608-c015-e8ed6522c5bc", "detail-type": "EC2 Fleet Instance Change", "source": "aws.ec2fleet", "account": "123456789012", "time": "2020-11-09T09:00:23Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-598fb973-87b7-422d-be4d-6b0809bfff0a" ], "detail": { "instance-id": "i-0c594155dd5ff1829", "description": "{\"instanceType\":\"c5.large\",\"image\":\"ami-6057e21a\",\"productDescription\":\"Linux/UNIX\",\"availabilityZone\":\"us-east-1d\"}", "sub-type": "launched" } }

sub-type 可使用的值为:

launched

启动了一个新实例。

terminated

实例已终止。

termination_notified

当 Amazon EC2 在缩减期间终止竞价型实例时,机群的目标容量被缩减,例如,从目标容量 4 减至目标容量 3 时,会发送实例终止通知。

EC2 队列信息

在履行过程中出错时,EC2 队列 会将 EC2 Fleet Information 事件发送到 Amazon EventBridge。信息事件不会阻止队列尝试实现其目标容量。

以下是此事件的示例数据。

{ "version": "0", "id": "76529817-d605-4571-7224-d36cc1b2c0c4", "detail-type": "EC2 Fleet Information", "source": "aws.ec2fleet", "account": "123456789012", "time": "2020-11-09T08:17:07Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-8becf5fe-bb9e-415d-8f54-3fa5a8628b91" ], "detail": { "description": "c4.xlarge, ami-0947d2ba12ee1ff75, Linux/UNIX, us-east-1a, Spot price in either SpotFleetRequestConfigData or SpotFleetLaunchSpecification or LaunchTemplate or LaunchTemplateOverrides is less than Spot market price $0.0619", "sub-type": "launchSpecUnusable" } }

sub-type 可使用的值为:

fleetProgressHalted

每个启动规范中的价格无效,因为它低于 Spot 价格(所有启动规范都已生成 launchSpecUnusable 事件)。如果 Spot 价格发生变化,启动规范可能会变为有效。

launchSpecTemporarilyBlacklisted

配置无效,多次启动实例的尝试都已失败。有关更多信息,请参阅事件的描述。

launchSpecUnusable

启动规范中的价格无效,因为它低于 Spot 价格。

registerWithLoadBalancersFailed

尝试向负载均衡器注册实例失败。有关更多信息,请参阅事件的描述。

EC2 队列错误

在履行过程中出错时,EC2 队列 会将 EC2 Fleet Error 事件发送到 Amazon EventBridge。错误事件阻止了队列尝试实现其目标容量。

以下是此事件的示例数据。

{ "version": "0", "id": "69849a22-6d0f-d4ce-602b-b47c1c98240e", "detail-type": "EC2 Fleet Error", "source": "aws.ec2fleet", "account": "123456789012", "time": "2020-10-07T01:44:24Z", "region": "us-east-1", "resources": [ "arn:aws:ec2:us-east-1:123456789012:fleet/fleet-9bb19bc6-60d3-4fd2-ae47-d33e68eafa08" ], "detail": { "description": "m3.large, ami-00068cd7555f543d5, Linux/UNIX: IPv6 is not supported for the instance type 'm3.large'. ", "sub-type": "spotFleetRequestConfigurationInvalid" } }

sub-type 可使用的值为:

iamFleetRoleInvalid

EC2 机群没有启动或终止实例所需的权限。

allLaunchSpecsTemporarilyBlacklisted

所有配置均无效,多次启动实例的尝试已失败。有关更多信息,请参阅事件的描述。

spotInstanceCountLimitExceeded

您已达到可启动的竞价型实例的数量限制。

spotFleetRequestConfigurationInvalid

该配置无效。有关更多信息,请参阅事件的描述。