

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 教程：部署具有验证测试的 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 应用程序之间的关联方式。本教程使用应用程序负载均衡器。您也可以使用网络负载均衡器。

![\[应用程序负载均衡器或网络负载均衡器、侦听器、目标组、任务集和 Amazon ECS 服务之间的连接。\]](http://docs.amazonaws.cn/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)。

![\[部署后应用程序负载均衡器或网络负载均衡器、侦听器、目标组和替换任务集之间的连接。\]](http://docs.amazonaws.cn/codedeploy/latest/userguide/images/codedeploy-ecs-deployment-step-6.png)


**注意**  
完成本教程可能会导致您的 Amazon 账户被扣款。这些费用包括 CodeDeploy Amazon Lambda、和可能收取的费用 CloudWatch。[有关更多信息，请参阅[Amazon CodeDeploy 定价、Amazon Lambda 定价](https://www.amazonaws.cn/codedeploy/pricing/)和 [Amazon CloudWatch 定价](https://www.amazonaws.cn/cloudwatch/pricing/)。](https://www.amazonaws.cn/lambda/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：创建生命周期挂钩 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：在日志中查看您的 Lambda 挂钩函数输出 CloudWatch](tutorial-ecs-with-hooks-view-cw-logs.md)
+ [步骤 7：清除](tutoria-ecs-with-hooks-clean-up.md)