

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

# Amazon ECS 服務部署的 lifecycle hook
<a name="deployment-lifecycle-hooks"></a>

部署開始時，會進入生命週期階段。每個階段都可以處於 狀態，例如 `IN_PROGRESS`或 `SUCCEEDED`。您可以在特定階段設定生命週期關聯，以執行自訂邏輯或在部署進行之前引入決策點。Amazon ECS 支援兩種類型的生命週期掛鉤：

Lambda 掛鉤  
Amazon ECS 會在部署的特定階段叫用 Lambda 函數。您的函數包含您的自訂邏輯，且必須傳回包含 `SUCCEEDED`、 `FAILED`或 之 `hookStatus`的 JSON 物件`IN_PROGRESS`，以告知 Amazon ECS 如何繼續。您可以使用這些勾點來執行驗證測試、強制執行控管政策，或在部署繼續進行之前實作自訂核准步驟。如需詳細資訊，請參閱[Amazon ECS 服務部署的 Lambda 掛鉤](lambda-lifecycle-hooks.md)。

暫停掛鉤  
Amazon ECS 會在設定的生命週期階段暫停部署，並等待您呼叫 `ContinueServiceDeployment` API 以繼續或轉返。暫停時，您可以在外部執行自己的工作流程，例如手動核准、與現有工具的整合測試、操作準備度檢查或 CI/CD 管道步驟。如需詳細資訊，請參閱[暫停 Amazon ECS 服務部署的掛鉤](pause-lifecycle-hooks.md)。

您可以在相同的生命週期階段設定 Lambda 掛鉤和暫停掛鉤。在部署繼續進行下一個階段之前，兩個掛鉤都必須完成。

## 生命週期掛鉤詳細資訊
<a name="lifecycle-hook-details-overview"></a>

當掛鉤在部署期間處於作用中狀態時，您可以呼叫 來檢視其狀態`DescribeServiceDeployments`。回應包含陣列`lifecycleHookDetails`，其中包含每個作用中勾點的下列欄位：


| 欄位 | 說明 | 
| --- | --- | 
| hookId | 此掛鉤執行的唯一識別符。呼叫 ContinueServiceDeployment 進行暫停掛鉤時，請使用此值。 | 
| targetType | 勾點類型： AWS\_LAMBDA或 PAUSE。 | 
| targetArn | 掛鉤目標的 ARN。對於 Lambda 勾點，這是 Lambda 函數 ARN。對於暫停掛鉤，未設定此欄位。 | 
| status | 勾點的目前狀態：AWAITING\_ACTION、IN\_PROGRESS、FAILED、 SUCCEEDED或 TIMED\_OUT。 | 
| expiresAt | 勾點過期的日期和時間。（範例：2026-05-06T12：06：49 年 7：00) | 
| timeoutAction | 當勾點逾時時，Amazon ECS 會採取的動作： ROLLBACK或 CONTINUE。 | 

## 生命週期階段類別
<a name="lifecycle-stage-categories"></a>

生命週期階段分為兩個類別：

1. **單一調用階段** - Amazon ECS 在服務部署期間只會調用這些階段一次：
   + `RECONCILE_SERVICE`
   + `PRE_SCALE_UP`
   + `POST_SCALE_UP`
   + `TEST_TRAFFIC_SHIFT`
   + `POST_TEST_TRAFFIC_SHIFT`
   + `POST_PRODUCTION_TRAFFIC_SHIFT`

1. **重複叫用階段** - Amazon ECS 可以在服務部署期間多次叫用這些階段。對於線性和 Canary 部署，每個流量轉移步驟都會叫用這些階段：
   + `PRE_PRODUCTION_TRAFFIC_SHIFT`
   + `PRODUCTION_TRAFFIC_SHIFT`

**注意**  
無法在 `TEST_TRAFFIC_SHIFT`或 設定暫停掛鉤，`PRODUCTION_TRAFFIC_SHIFT`因為在復原期間也會調用這些階段。在轉返期間暫停需要額外的`ContinueServiceDeployment`呼叫才能完成轉返。

## 依勾點類型支援的階段
<a name="lifecycle-hooks-supported-stages"></a>


| 生命週期階段 | Lambda 掛鉤 | 暫停掛鉤 | 
| --- | --- | --- | 
| RECONCILE\_SERVICE | 是 | 是 | 
| PRE\_SCALE\_UP | 是 | 是 | 
| POST\_SCALE\_UP | 是 | 是 | 
| TEST\_TRAFFIC\_SHIFT | 是 | 否 | 
| POST\_TEST\_TRAFFIC\_SHIFT | 是 | 是 | 
| PRE\_PRODUCTION\_TRAFFIC\_SHIFT | 是 | 是 | 
| PRODUCTION\_TRAFFIC\_SHIFT | 是 | 否 | 
| POST\_PRODUCTION\_TRAFFIC\_SHIFT | 是 | 是 | 