

# Amazon ECS イベント
<a name="ecs_cwe_events"></a>

Amazon ECS は、各タスクとサービスの状態を追跡します。タスクやサービスの状態が変わると、イベントが生成され、Amazon EventBridge に送信されます。これらのイベントは、タスク状態変更イベントおよびサービスアクションイベントとして分類されます。各イベントとその考えられる原因については、以下のセクションで詳しく説明します。

Amazon ECS は、次のタイプのイベントを生成して EventBridge に送信します。
+ コンテナインスタンス状態変更
+ タスク状態変更
+ デプロイの状態変更
+ サービスアクション

**注記**  
今後、Amazon ECS に他の種類のイベント、ソース、詳細が追加される場合があります。コードのイベント JSON データを逆シリアル化する場合は、不明なプロパティが追加されたときに問題が発生しないように、アプリケーションが不明なプロパティに対応できるようにしてください。

同じアクティビティに対して複数のイベントが生成される場合もあります。例えば、コンテナインスタンスでタスクが開始されると、この新しいタスクに対してタスク状態変更イベントが生成されます。コンテナインスタンスの使用可能なリソース (CPU、メモリ、使用可能なポートなど) の変更に対応するため、コンテナインスタンス状態変更イベントがアカウントに生成されます。同様に、コンテナインスタンスが終了すると、コンテナインスタンス、コンテナエージェント接続ステータス、およびコンテナインスタンスで実行されている各タスクに対してイベントが生成されます。

コンテナ状態変更イベントとタスク状態変更イベントには 2 つの `version` フィールドがあります。1 つはイベントの本体で、もう 1 つはイベントの `detail` オブジェクトです。次に、これら 2 つのフィールドの違いについて説明します。
+ イベントの本文の `version` フィールドは、すべてのイベントで `0` に設定されています。EventBridge パラメータの詳細については、「*Amazon EventBridge ユーザーガイド*」の「[AWS サービスイベントメタデータ](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-events-structure.html)」を参照してください。
+ イベントの `detail` オブジェクトの `version` フィールドは、関連付けられているリソースのバージョンについて説明します。リソースの状態が変わるたびに、このバージョンはインクリメントされます。イベントは複数回送信できるため、このフィールドで重複するイベントを識別できます。重複するイベントには、`detail` オブジェクト内で同じバージョンがあります。EventBridge で Amazon ECS コンテナインスタンスおよびタスク状態をレプリケートする場合は、Amazon ECS API によって報告されるリソースのバージョンとそのリソースについて 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/)」を参照してください。