

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

# 主控台中的 Amazon ECS 事件擷取
<a name="task-lifecycle-events"></a>

Amazon ECS 主控台提供事件擷取功能，可透過 EventBridge 將服務動作和任務狀態變更等 Amazon ECS 產生的事件儲存到 Amazon CloudWatch Logs。此功能包含查詢介面，具有用於監控和故障診斷的篩選功能。

事件提供有關您的服務部署、服務、任務和執行個體如何運作的詳細資訊。您可以使用此資訊對任務或服務部署失敗進行故障診斷。

當您開啟事件擷取時，您可以存取 Amazon ECS 在您選擇的保留期間產生的所有事件，延伸超過最後 100 個未篩選事件或僅顯示 1 小時的已停止任務的原生限制。

## 運作方式
<a name="task-lifecycle-events-overview"></a>

事件擷取使用 EventBridge 將事件儲存在預先定義的 Amazon CloudWatch Logs 日誌群組中。Amazon ECS 主控台提供預先建置的查詢和篩選選項，並將事件相互關聯，以直覺的形式提供任務生命週期。

您可以查詢和擷取下列類型的事件：
+ **服務動作事件** - 協助識別佈建或資源分配問題
+ **任務生命週期事件** - 協助識別任務或容器無法啟動或停止執行的原因

Amazon ECS 主控台可讓您一鍵設定事件擷取，並提供常用的查詢和篩選，而不需要您學習查詢語言或在多個主控台之間導覽。

## Event types (事件類型)
<a name="task-lifecycle-events-types"></a>

事件擷取會將所有 Amazon ECS 產生的事件儲存在下列類別中：

任務狀態變更事件  
容器停止和其他終止事件，可用於疑難排解或監控任務生命週期時間表。

服務動作  
像是達到穩定狀態、任務置放失敗或資源限制等事件。

服務部署狀態變更  
事件，例如進行中、已完成或失敗的部署，由斷路器和復原設定觸發，以監控服務部署的狀態。

容器執行個體狀態變更  
對於 EC2 和 Amazon ECS 受管執行個體上的工作負載，事件會顯示連線和中斷連線狀態。

## 日誌群組組態
<a name="task-lifecycle-events-log-group"></a>

當您開啟事件擷取時，Amazon ECS 會自動建立下列資源：
+ 名為 的 Amazon CloudWatch Logs 日誌群組 `/aws/events/ecs/containerinsights/${clusterName}/performance`
+ EventBridge 規則可從`aws.ecs`來源擷取所有事件，並將其轉送至日誌群組

您可以為日誌群組指定從 1 天到 10 年的保留期。預設保留期間為 7 天。

## 考量事項
<a name="task-lifecycle-events-limitations"></a>

使用事件擷取時，請考慮下列事項：
+ 事件擷取會儲存所有事件以簡化操作。您無法在 Amazon ECS 主控台中設定規則，以僅擷取特定事件。
+ Amazon ECS 主控台提供預先定義的查詢條件。對於進階查詢，請使用 Amazon CloudWatch Logs Logs Insights 直接查詢日誌群組。
+ Amazon ECS 主控台不提供即時結尾功能。直接將 Amazon CloudWatch Logs 用於即時結尾。
+ 當您停用事件擷取時，會刪除 EventBridge 規則。
+ 事件擷取會產生 EventBridge 資料擷取、Amazon CloudWatch Logs 儲存和查詢執行的額外費用。

  如需 EventBridge 定價的資訊，請參閱 [EventBridge 定價](https://aws.amazon.com/eventbridge/pricing/)。

  如需 CloudWatch 定價的相關資訊，請參閱 [CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

## 事件型疑難排解
<a name="task-lifecycle-events-troubleshooting"></a>

使用 Amazon ECS 產生的事件來回答常見的疑難排解問題。

### 任務失敗分析
<a name="task-lifecycle-events-task-failures"></a>

您可以檢閱`STOPPED`任務狀態變更事件、停止代碼和容器結束代碼，以判斷任務在執行時無法啟動或失敗的原因。

您可以檢閱置放失敗的服務動作事件和資源限制資訊，以判斷任務因資源限制而無法置放的原因

### 常見的任務失敗案例
<a name="task-lifecycle-events-common-issues"></a>

最常見的異常任務失敗與下列問題有關：
+ CI/CD 服務部署失敗
+ 自動擴展失敗
+ 任務重新平衡失敗
+ 異常容器結束，例如out-of-memory(OOM) 錯誤

異常任務失敗會產生具有 `EssentialContainerExited`或 `TaskFailedToStart` 停止程式碼`STOPPED`的任務狀態變更事件。您可以依這些停止代碼進行篩選，以檢查容器執行和停止行為。