

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

# 在中使用部署配置 CodeDeploy
<a name="deployment-configurations"></a>

部署配置是 CodeDeploy 在部署期间使用的一组规则以及成功条件和失败条件。这些规则和条件会有所不同，具体取决于您是部署到 EC2/On-Premises 计算平台、 AWS Lambda 计算平台还是 Amazon ECS 计算平台。

## EC2/on-premises 计算平台上的部署配置
<a name="deployment-configuration-server"></a>



部署到 EC2/On-Premises 计算平台时，部署配置通过使用 “最少运行正常的主机” 值和可选的 “每个区域的最小运行状况主机数” 值来指定在部署期间任何时候必须保持可用的实例数量或百分比。

您可以使用提供的三种预定义部署配置之一， AWS 也可以创建自定义部署配置。有关创建自定义部署配置的更多信息，请参阅[使用创建部署配置 CodeDeploy](deployment-configurations-create.md)。如果您未指定部署配置，则 CodeDeploy 使用 CodeDeployDefault.OneAtATime 部署配置。

有关如何在部署期间 CodeDeploy 监控和评估实例运行状况的更多信息，请参阅[CodeDeploy 实例运行状况](instances-health.md)。要查看已注册到您的 AWS 账户的部署配置列表，请参阅[使用查看部署配置详细信息 CodeDeploy](deployment-configurations-view-details.md)。

### EC2/on-premises 计算平台的预定义部署配置
<a name="deployment-configurations-predefined"></a>

下表列出了预定义的部署配置。

**注意**  
没有支持 [zonal configuration](deployment-configurations-create.md#zonal-config) 功能（该功能允许您指定每个可用区正常运行的主机数量）的预定义部署配置。如果要使用此功能，您必须[创建自己的部署配置](deployment-configurations-create.md)。


****  

| 部署配置 | 说明 | 
| --- | --- | 
| CodeDeployDefault.AllAtOnce | **In-place 部署**：一次性尝试将应用程序修订部署到尽可能多的实例。如果将应用程序修订部署到一个或多个实例，则整个部署的状态将显示为成功。如果尚未向任何实例部署应用程序修订，则整个部署的状态将显示为失败。以九个实例为例， CodeDeployDefault.AllAtOnce 尝试同时部署到所有九个实例。如果部署到单个实例成功，则整体部署成功。仅当所有 9 个实例的部署失败时，它才会失败。<br />**Blue/green 部署**：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html) | 
| CodeDeployDefault.HalfAtATime | **In-place 部署**：<br />一次最多可部署到一半实例（小数向下取整）。如果将应用程序修订部署到至少一半实例（小数向下取整），则整个部署成功。否则，部署失败。在包含 9 个实例的示例中，一次部署到最多 4 个实例。如果成功部署到 5 个或更多实例，则整个部署成功。否则，部署失败。 如果您要部署到多个 Auto Scaling 组中的实例，则*无论这些实例属于哪个 Auto Scaling 组，都 CodeDeploy 将一次部署到多达一半的*实例。例如，假设您有两个 Auto Scaling 组 `ASG1` 和 `ASG2`，每个组有 10 个实例。在这种情况下， CodeDeploy 可能会在短时间内部署到 10 个实例，`ASG1`并认为这是成功的，因为它已部署到至少一半的实例。 <br />**Blue/green 部署**：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html) | 
| CodeDeployDefault.OneAtATime | **In-place 部署**：<br />一次仅将应用程序修订部署到一个实例。<br />对于包含多个实例的部署组：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html)<br />对于仅包含一个实例的部署组，整个部署仅在成功部署到单个实例时成功。<br />**Blue/green 部署**：[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html) | 

## Amazon ECS 计算平台上的部署配置
<a name="deployment-configuration-ecs"></a>

部署到 Amazon ECS 计算平台时，部署配置指定如何将流量转移到更新后的 Amazon ECS 任务集。您可以使用**金丝雀**、**线性** 或**一次性** 部署配置来转移流量。有关更多信息，请参阅 [部署配置](primary-components.md#primary-components-deployment-configuration)。

您也可以创建自定义 Canary 部署或线性部署配置。有关更多信息，请参阅 [使用创建部署配置 CodeDeploy](deployment-configurations-create.md)。

### Amazon ECS 计算平台的预定义部署配置
<a name="deployment-configurations-predefined-ecs"></a>

下表列出了可用于 Amazon ECS 部署的预定义配置。

**注意**  
如果您使用的是网络负载均衡器，仅支持 `CodeDeployDefault.ECSAllAtOnce` 预定义的部署配置。


****  

| 部署配置 | 说明 | 
| --- | --- | 
| CodeDeployDefault.ECSLinear10PercentEvery1Minutes | 每分钟转移 10% 的流量，直到所有流量转移完毕。 | 
| CodeDeployDefault.ECSLinear10PercentEvery3Minutes  | 每隔 3 分钟转移 10% 的流量，直到所有流量转移完毕。 | 
| CodeDeployDefault.ECSCanary10Percent5Minutes | 在第一次增量中转移 10% 的流量。其余 90% 部署在五分钟后进行转移。 | 
| CodeDeployDefault.ECSCanary10Percent15Minutes | 在第一次增量中转移 10% 的流量。剩下的 90% 将在 15 分钟后部署。 | 
| CodeDeployDefault.ECSAllAtOnce | 将所有流量一次性转移到更新后的 Amazon ECS 容器。 | 

## 部署的 CloudFormation blue/green 部署配置 (Amazon ECS)
<a name="deployment-configuration-cfn-bg"></a>

 当您通过部署部署到 Amazon ECS 计算平台时， CloudFormation blue/green 部署配置会指定如何将流量转移到更新后的 Amazon ECS 容器。您可以使用**金丝雀**、**线性** 或**一次性** 部署配置来转移流量。有关更多信息，请参阅 [部署配置](primary-components.md#primary-components-deployment-configuration)。

对于 CloudFormation blue/green 部署，您无法创建自己的自定义金丝雀或线性部署配置。有关使用 CloudFormation 管理 Amazon ECS blue/green 部署的分步说明，请参阅*CloudFormation 用户指南 CloudFormation*中的[通过 CodeDeploy 使用自动 blue/green 部署 ECS](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/blue-green.html)。

**注意**  
欧洲（米兰）、非洲（开普敦）和亚太地区（大阪）区域不支持使用 CloudFormation 管理 Amazon ECS blue/green 部署。

## AWS Lambda 计算平台上的部署配置
<a name="deployment-configuration-lambda"></a>

当您部署到 AWS Lambda 计算平台时，部署配置会指定流量转移到应用程序中新 Lambda 函数版本的方式。您可以使用**金丝雀**、**线性** 或**一次性** 部署配置来转移流量。有关更多信息，请参阅 [部署配置](primary-components.md#primary-components-deployment-configuration)。

您也可以创建自定义 Canary 部署或线性部署配置。有关更多信息，请参阅 [使用创建部署配置 CodeDeploy](deployment-configurations-create.md)。

### AWS Lambda 计算平台的预定义部署配置
<a name="deployment-configurations-predefined-lambda"></a>

下表列出了可用于 AWS Lambda 部署的预定义配置。


****  

| 部署配置 | 说明 | 
| --- | --- | 
| CodeDeployDefault.LambdaCanary10Percent5Minutes | 在第一次增量中转移 10% 的流量。其余 90% 部署在五分钟后进行转移。 | 
| CodeDeployDefault.LambdaCanary10Percent10Minutes | 在第一次增量中转移 10% 的流量。其余 90% 部署在 10 分钟后进行转移。 | 
| CodeDeployDefault.LambdaCanary10Percent15Minutes | 在第一次增量中转移 10% 的流量。剩下的 90% 将在 15 分钟后部署。 | 
| CodeDeployDefault.LambdaCanary10Percent30Minutes | 在第一次增量中转移 10% 的流量。其余 90% 部署在 30 分钟后进行转移。 | 
| CodeDeployDefault.LambdaLinear10PercentEvery1Minute | 每分钟转移 10% 的流量，直到所有流量转移完毕。 | 
| CodeDeployDefault.LambdaLinear10PercentEvery2Minutes | 每隔 2 分钟转移 10% 的流量，直到所有流量转移完毕。 | 
| CodeDeployDefault.LambdaLinear10PercentEvery3Minutes | 每隔 3 分钟转移 10% 的流量，直到所有流量转移完毕。 | 
| CodeDeployDefault.LambdaLinear10PercentEvery10Minutes | 每隔 10 分钟转移 10% 的流量，直到所有流量转移完毕。 | 
|  CodeDeployDefault.LambdaAllAtOnce  | 所有流量一次性转移到更新后的 Lambda 函数。 | 

## 主题
<a name="topiclist-deployment-configurations"></a>
+ [Create a Deployment Configuration](deployment-configurations-create.md)
+ [View Deployment Configuration Details](deployment-configurations-view-details.md)
+ [Delete a Deployment Configuration](deployment-configurations-delete.md)