

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

# 教學課程：使用驗證測試部署 Amazon ECS 服務
<a name="tutorial-ecs-deployment-with-hooks"></a>

 在本教學課程中，您將了解如何使用 Lambda 函數來驗證已更新 Amazon ECS 應用程式的部分部署。本教學課程使用 CodeDeploy 應用程式、CodeDeploy 部署群組，以及您在 中使用的 Amazon ECS 應用程式[教學課程：將應用程式部署至 Amazon ECS](tutorial-ecs-deployment.md)。請先完成該教學課程，再開始本教學課程。

 若要新增驗證測試，您必須先在 Lambda 函數中實作測試。接著，在部署 AppSpec 檔案中，為您要測試的生命週期掛鉤指定 Lambda 函數。如果驗證測試失敗，部署會停止、轉返，並標記為失敗。如果測試成功，部署會繼續下一個部署生命週期事件或勾點。

 在具有驗證測試的 Amazon ECS 部署期間，CodeDeploy 會使用負載平衡器，其設定有兩個目標群組：一個生產流量接聽程式和一個測試流量接聽程式。下圖顯示部署開始之前，負載平衡器、生產和測試接聽程式、目標群組和 Amazon ECS 應用程式之間的關聯。本教學課程會使用 Application Load Balancer。您也可以使用 Network Load Balancer。

![Application Load Balancer 或 Network Load Balancer、接聽程式、目標群組、任務集和 Amazon ECS 服務之間的連線。](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-1.png)


 在 Amazon ECS 部署期間，有五個生命週期掛鉤可供測試。本教學課程會在第三個生命週期部署勾點 `AfterAllowTestTraffic` 期間實作一個測試。如需詳細資訊，請參閱[Amazon ECS 部署的生命週期事件掛鉤清單](reference-appspec-file-structure-hooks.md#reference-appspec-file-structure-hooks-list-ecs)。成功部署後，生產流量接聽程式會將流量轉送至新的替換任務集，並終止原始任務集。下圖顯示您的資源在成功部署後如何相關。如需詳細資訊，請參閱[Amazon ECS 部署期間會發生什麼情況](deployment-steps-ecs.md#deployment-steps-what-happens)。

![部署之後，Application Load Balancer 或 Network Load Balancer、接聽程式、目標群組和替換任務集之間的連線。](http://docs.aws.amazon.com/zh_tw/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)


**注意**  
完成本教學課程可能會導致 AWS 您的帳戶產生費用。這些包括 CodeDeploy AWS Lambda和 CloudWatch 的可能費用。如需詳細資訊，請參閱[AWS CodeDeploy 定價](https://aws.amazon.com/codedeploy/pricing/)、[AWS Lambda 定價](https://aws.amazon.com/lambda/pricing/)和 [Amazon CloudWatch 定價](https://aws.amazon.com/cloudwatch/pricing/)。

**Topics**
+ [先決條件](tutorial-ecs-with-hooks-prereqs.md)
+ [步驟 1：建立測試接聽程式](tutorial-ecs-with-hooks-create-second-listener.md)
+ [步驟 2：更新您的 Amazon ECS 應用程式](tutorial-ecs-with-hooks-update-the-ecs-application.md)
+ [步驟 3：建立 lifecycle hook Lambda 函數](tutorial-ecs-with-hooks-create-hooks.md)
+ [步驟 4：更新您的 AppSpec 檔案](tutorial-ecs-with-hooks-create-appspec-file.md)
+ [步驟 5：使用 CodeDeploy 主控台來部署 Amazon ECS 服務](tutorial-ecs-with-hooks-deployment.md)
+ [步驟 6：在 CloudWatch Logs 中檢視 Lambda 掛鉤函數輸出](tutorial-ecs-with-hooks-view-cw-logs.md)
+ [步驟 7：清除](tutoria-ecs-with-hooks-clean-up.md)