Amazon ECS 事件 - Amazon Elastic Container Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Amazon ECS 事件

Amazon ECS 會追蹤每個任務和服務的狀態。如果任務或服務的狀態變更,就會產生事件並將事件傳送到 Amazon EventBridge。系統會將這些事件分類為任務狀態變更事件和服務動作事件。下列各節將更詳細地說明這些事件及其可能原因。

Amazon ECS 會產生下列類型的事件並將其傳送至 EventBridge:

  • 容器執行個體狀態變更

  • 任務狀態變更

  • Deployment state change (部署狀態變更)

  • 服務動作

注意

Amazon ECS 可能會在未來新增其他事件類型、來源和詳細資訊。如果您要在程式碼中取消序列化事件 JSON 資料,請確定您的應用程式已準備好處理未知屬性,以避免新增這些額外屬性時發生問題。

在某些情況下,會針對相同的活動產生多個事件。例如,在容器執行個體開始任務時,即會為新的任務產生任務狀態變更事件。系統會針對容器執行個體上可用資源 (例如,CPU、記憶體和可用連接埠) 中的變更,對帳戶產生容器執行個體狀態變更事件。同樣地,如果終止容器執行個體,則會針對容器執行個體、容器代理連線狀態以及在容器執行個體上執行的每個任務產生事件。

容器狀態變更和任務狀態變更事件包含兩個 version 欄位:一個位於事件本體,另一個位於事件的 detail 物件中。以下說明這兩個欄位之間的差異:

  • 事件本體的 version 欄位在所有事件中皆設為 0。如需 EventBridge 參數的詳細資訊,請參閱《Amazon EventBridge 使用者指南》中的AWS 服務事件中繼資料

  • 事件之 detail 物件中的 version 欄位說明相關資源的版本。每次資源變更狀態時,此版本都會遞增。因為事件可以傳送多次,所以此欄位可讓您識別重複的事件。重複事件在 detail 物件中具有相同版本。如果您使用 EventBridge 複寫 Amazon ECS 容器執行個體和任務狀態,您可以將 Amazon ECS APIs 回報的資源版本與 EventBridge 中回報的資源版本 (在 detail 物件內) 進行比較,以驗證事件串流中的版本是否為最新版本。

服務動作事件只包含本體中的 version 欄位。

服務動作事件會在 2 個不同的欄位中指定服務:

  • 對於 產生的事件create-service,服務位於 serviceName 欄位中。

  • 對於 產生的事件update-service,服務位於 service 欄位中。

如果您將自動化工具用於服務事件,則需要為這兩個欄位編寫程式碼。

如需如何建立服務動作事件規則的詳細資訊,請參閱 Amazon ECS 服務動作事件

如需有關如何整合 Amazon ECS 與 EventBridge 的其他資訊,請參閱整合 Amazon EventBridge 與 Amazon ECS