Amazon ECS Events
Amazon ECS 跟踪每个任务和服务的状态。如果任务或服务的状态发生更改,则会生成事件并将其发送到 Amazon EventBridge。这些事件归类为任务状态更改事件和服务操作事件。以下部分中更详细地介绍了这些事件及可能原因。
Amazon ECS 生成并将以下类型的事件发送到 EventBridge:容器实例状态更改事件、任务状态更改事件、服务操作和服务部署状态更改事件。
-
容器实例状态更改事件
-
任务状态更改
-
部署状态更改
-
服务操作
注意
Amazon ECS 将来可能会增加其他事件类型、源和详细信息。如果您以代码方式对事件 JSON 数据反序列化,请确保应用程序已准备好处理未知属性,以避免在增加这些附加属性时出现问题。
在某些情况下,将为同一活动生成多个事件。例如,在容器实例上启动任务时,将为新任务生成任务状态更改事件。生成容器实例状态更改事件以说明容器实例上的可用资源(例如 CPU、内存和可用端口)的更改。同样,如果终止容器实例,将为容器实例、容器代理连接状态以及在容器实例上运行的每个任务生成事件。
容器状态更改和任务状态更改事件包含两个 version
字段:一个字段在事件的主体中,一个字段在事件的 detail
对象中。下面介绍了这两个字段之间的差异:
-
对于所有事件,事件主体中的
version
字段设为0
。有关 EventBridge 参数的更多信息,请参阅《Amazon EventBridge 用户指南》中的 Amazon service event metadata。 -
事件的
detail
对象中的version
字段描述了关联资源的版本。当资源状态发生更改时,此版本会递增。由于可多次发送事件,因此您可以使用该字段来确定重复事件。重复事件在detail
对象中具有相同版本。如果您用 EventBridge 复制 Amazon ECS 容器实例和任务状态,则可比较 Amazon ECS API 所报告的资源版本与资源的 EventBridge 事件中报告的版本(在detail
对象中),以便验证事件流中的版本是否为最新版本。
服务操作事件仅包含主体中的 version
字段。
有关如何集成 Amazon ECS 和 EventBridge 的更多信息,请参阅 Integrating Amazon EventBridge and Amazon ECS