

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

# Amazon ECS 事件
<a name="ecs_cwe_events"></a>

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

Amazon ECS 會產生下列類型的事件並將其傳送至 EventBridge：
+ 容器執行個體狀態變更
+ 任務狀態變更
+ Deployment state change (部署狀態變更)
+ 服務動作

**注意**  
Amazon ECS 日後可能會新增其他事件類型、來源與詳細資訊。如果透過程式碼將事件 JSON 資料反序列化，請確保應用程式已準備好處理不明屬性，避免日後新增這些額外屬性時出現問題。

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

容器狀態變更和任務狀態變更事件包含兩個 `version` 欄位：一個位於事件本體，另一個位於事件的 `detail` 物件中。以下說明這兩個欄位之間的差異：
+ 事件本體的 `version` 欄位在所有事件中皆設為 `0`。如需有關 EventBridge 參數的詳細資訊，請參閱 *Amazon EventBridge User Guide* 中的 [AWS service event metadata](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html)。
+ 事件之 `detail` 物件中的 `version` 欄位說明相關資源的版本。每次資源變更狀態時，此版本都會遞增。因為事件可以傳送多次，所以此欄位可讓您識別重複的事件。重複事件在 `detail` 物件中具有相同版本。如果您使用 EventBridge 複寫 Amazon ECS 容器執行個體和任務狀態，您可以將 Amazon ECS APIs 回報的資源版本與 EventBridge 中回報的資源版本 （在 `detail` 物件內） 進行比較，以確認事件串流中的版本為最新版本。

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

服務動作事件會透過 2 個不同欄位標明所屬服務：
+ 對於由 `create-service` 產生的事件，服務位於 `serviceName` 欄位中。
+ 對於由 `update-service` 產生的事件，服務位於 `service` 欄位中。

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

如需有關如何建立服務動作事件規則的資訊，請參閱 [Amazon ECS 服務動作事件](ecs_service_events.md)。

如需有關如何整合 Amazon ECS 與 EventBridge 的其他資訊，請參閱[整合 Amazon EventBridge 與 Amazon ECS](https://aws.amazon.com/blogs/compute/integrating-amazon-eventbridge-and-amazon-ecs/)。