

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

# Amazon ECS 任務生命週期
<a name="task-lifecycle-explanation"></a>

無論是以手動方式或是做為服務的一部分，當任務啟動時，它可以在自動完成或手動停止之前通過數個狀態。有些任務是做為批次任務執行的，因此會很自然地從 `PENDING` 前進到 `RUNNING`，最後前進到 `STOPPED`。其他可做為服務一部分的任務會不限期的持續執行，或者可根據需要擴展或縮小。

當請求任務狀態變更時 (例如停止任務或更新需要擴展或縮小的服務計數時)，Amazon ECS 容器代理程式會以任務的最後已知狀態 (`lastStatus`)，以及任務的所需狀態 (`desiredStatus`) 來追蹤這些變更。最後已知狀態和所需狀態，都可在主控台或透過使用 API 或 AWS CLI說明任務來查看。

下面的流程圖顯示任務生命週期流程。

![\[任務生命週期狀態的圖表。狀態為 PROVISIONING、PENDING、ACTIVATING、RUNNING、DEACTIVATING、STOPPING。\]](http://docs.aws.amazon.com/zh_tw/AmazonECS/latest/developerguide/images/task-lifecycle.png)


## 生命週期狀態
<a name="lifecycle-states"></a>

以下是每個任務生命週期狀態的說明。

佈建中  
Amazon ECS 必須執行額外的步驟，然後再啟動任務。例如，對於使用 `awsvpc` 網路模式的任務，需要佈建彈性網路介面。

待定  
這是一個轉換狀態，Amazon ECS 在容器代理程式上等待採取進一步的動作。任務會一直處於待處理狀態，直到任務有可用的資源為止。

啟動中  
這是一種轉換狀態，其中 Amazon ECS 必須在啟動任務後但在任務可轉移為 `RUNNING` 狀態前執行額外的步驟。在此狀態下，Amazon ECS 會提取容器映像、建立容器、設定任務聯網、註冊負載平衡器目標群組，以及設定服務探索。

RUNNING (執行中)  
任務成功執行中。

停用中  
這是一種轉換狀態，其中 Amazon ECS 必須在任務停止之前執行其他步驟。例如，任務若屬於設定為使用 Elastic Load Balancing 目標群組的服務，則目標群組取消註冊會發生於此狀態期間。

停止中  
這是一個轉換狀態，Amazon ECS 在容器代理程式上等待採取進一步的動作。  
對於 Linux 容器，容器代理程式會傳送容器映像中定義的停止訊號，以通知應用程式需要使用 `STOPSIGNAL`指示完成和關閉。這是預設`SIGTERM`的。然後，它會在等待任務定義中設定的`StopTimeout`持續時間`SIGKILL`後傳送 。

取消佈建中  
Amazon ECS 必須在任務停止後但在任務轉移為 `STOPPED` 狀態之前執行額外的步驟。例如，對於使用 `awsvpc` 網路模式的任務，需要分離並刪除彈性網路介面。

已停止  
已成功停止任務。  
如果任務因錯誤而停止，請參閱[檢視 Amazon ECS 已停止任務錯誤](stopped-task-errors.md)。

DELETED  
這是任務停止時的過渡狀態。此狀態不會在主控台中顯示，但是會顯示在 `describe-tasks`。