本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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