

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

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

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

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



当您部署到 EC2/本地计算平台时，部署配置会通过使用“正常运行的最少主机数”值和可选的“每个区域正常运行的最少主机数”值，来指定在部署过程中的任意时刻都必须保持可用的实例数或实例百分比。

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

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

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

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

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


****  

| 部署配置 | 说明 | 
| --- | --- | 
| CodeDeployDefault.AllAtOnce | **就地部署**：一次性尝试将应用程序修订部署到尽可能多的实例。如果将应用程序修订部署到一个或多个实例，则整个部署的状态将显示为成功。如果尚未向任何实例部署应用程序修订，则整个部署的状态将显示为失败。以九个实例为例， CodeDeployDefault。 AllAtOnce 尝试同时部署到所有九个实例。如果部署到单个实例成功，则整体部署成功。仅当所有 9 个实例的部署失败时，它才会失败。**蓝/绿部署**：[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html) | 
| CodeDeployDefault.HalfAtATime |  **就地部署**： 一次最多可部署到一半实例（小数向下取整）。如果将应用程序修订部署到至少一半实例（小数向下取整），则整个部署成功。否则，部署失败。在包含 9 个实例的示例中，一次部署到最多 4 个实例。如果成功部署到 5 个或更多实例，则整个部署成功。否则，部署失败。  如果您要部署到多个 Auto Scaling 组中的实例，则*无论这些实例属于哪个 Auto Scaling 组，都 CodeDeploy 将一次部署到多达一半的*实例。例如，假设您有两个 Auto Scaling 组 `ASG1` 和 `ASG2`，每个组有 10 个实例。在这种情况下， CodeDeploy 可能会在短时间内部署到 10 个实例，`ASG1`并认为这是成功的，因为它已部署到至少一半的实例。  **蓝/绿部署**： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html)  | 
| CodeDeployDefault.OneAtATime |  **就地部署**： 一次仅将应用程序修订部署到一个实例。 对于包含多个实例的部署组： [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-configurations.html) 对于仅包含一个实例的部署组，整个部署仅在成功部署到单个实例时成功。 **蓝/绿部署**： [\[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 任务集。您可以使用**金丝雀**、**线性**或**all-at-once**部署配置来转移流量。有关更多信息，请参阅 [部署配置](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。 ECSLinear10PercentEvery1 分钟  |  每分钟转移 10% 的流量，直到所有流量转移完毕。  | 
|  CodeDeployDefault。 ECSLinear10PercentEvery3 分钟   |  每隔 3 分钟转移 10% 的流量，直到所有流量转移完毕。  | 
|  CodeDeployDefault。 ECSCanary10百分比 5 分钟  |  在第一次增量中转移 10% 的流量。其余 90% 部署在五分钟后进行转移。  | 
| CodeDeployDefault。 ECSCanary10百分比 15 分钟 |  在第一次增量中转移 10% 的流量。剩下的 90% 将在 15 分钟后部署。  | 
|  CodeDeployDefault.ECSAllAtOnce  |  将所有流量一次性转移到更新后的 Amazon ECS 容器。  | 

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

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

对于 CloudFormation 蓝/绿部署，您无法创建自己的自定义金丝雀或线性部署配置。有关使用 CloudFormation 管理 Amazon ECS blue/green 部署的 step-by-step说明，请参阅*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 函数版本的方式。您可以使用**金丝雀**、**线性**或**all-at-once**部署配置来转移流量。有关更多信息，请参阅 [部署配置](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。 LambdaCanary10% 5 分钟  |  在第一次增量中转移 10% 的流量。其余 90% 部署在五分钟后进行转移。  | 
|  CodeDeployDefault。 LambdaCanary10% 10 分钟  |  在第一次增量中转移 10% 的流量。其余 90% 部署在 10 分钟后进行转移。  | 
|  CodeDeployDefault。 LambdaCanary10% 15 分钟  |  在第一次增量中转移 10% 的流量。剩下的 90% 将在 15 分钟后部署。  | 
|  CodeDeployDefault。 LambdaCanary10% 30 分钟  |  在第一次增量中转移 10% 的流量。其余 90% 部署在 30 分钟后进行转移。  | 
|  CodeDeployDefault。 LambdaLinear10 PercentEvery 1Minute  | 每分钟转移 10% 的流量，直到所有流量转移完毕。 | 
|  CodeDeployDefault。 LambdaLinear10 PercentEvery 2 分钟  |  每隔 2 分钟转移 10% 的流量，直到所有流量转移完毕。  | 
|  CodeDeployDefault。 LambdaLinear10 PercentEvery 3分钟  |  每隔 3 分钟转移 10% 的流量，直到所有流量转移完毕。  | 
| CodeDeployDefault。 LambdaLinear10 PercentEvery 10分钟 | 每隔 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)

# 使用创建部署配置 CodeDeploy
<a name="deployment-configurations-create"></a>

如果您不想使用随附的默认部署配置 CodeDeploy，则可以按照以下说明创建自己的部署配置。

您可以使用 CodeDeploy 控制台、 AWS CLI CodeDeploy APIs、或 CloudFormation 模板来创建自定义部署配置。

有关使用 CloudFormation 模板创建部署配置的信息，请参阅[CloudFormation 模板供 CodeDeploy 参考](reference-cloudformation-templates.md)。

**Topics**
+ [创建部署配置（控制台）](#deployment-configurations-create-console)
+ [使用 CodeDeploy (AWS CLI) 创建部署配置](#deployment-configurations-create-cli)

## 创建部署配置（控制台）
<a name="deployment-configurations-create-console"></a>

按照以下说明，使用 AWS 控制台创建部署配置。

**CodeDeploy 使用控制台在中创建部署配置**

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/codede](https://console.aws.amazon.com/codedeploy) ploy 上打开 CodeDeploy 控制台。
**注意**  
使用您在[入门 CodeDeploy](getting-started-codedeploy.md)中设置的同一用户登录。

1. 在导航窗格中，选择**部署配置**。

   将显示一个内置部署配置列表。

1. 选择**创建部署配置**。

1. 在**部署配置名称**中，输入部署配置的名称。例如 **my-deployment-config**。

1. 在**计算平台**下，选择以下选项之一：
   + **EC2/本地**
   + **AWS Lambda**
   + **Amazon ECS**

1. 请执行以下操作之一：
   + 如果您选择了 **EC2/本地**：

     1. 在**正常运行的最少主机数**下，指定在部署期间任何时候都必须保持可用的实例的数量或百分比。有关部署期间 CodeDeploy 如何监控和评估实例运行状况的信息，请参阅[CodeDeploy 实例运行状况](instances-health.md)。

     1. （可选）在 “**区域配置**” 下，选择 “**启用区域配置**”， CodeDeploy 将您的应用程序一次部署到一个区域内的一个[AWS 可用区](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-regions-availability-zones.html#concepts-availability-zones)。一次部署到一个可用区后，随着您对部署性能和可行性的信心逐渐增强，就可以向越来越多的受众展示自己的部署。如果您未启用区域配置，则会将您的应用程序 CodeDeploy 部署到一个区域中随机选择的主机。

        如果您启用了区域配置功能，请注意以下事项：
        + 只有对 Amazon EC2 实例的就地部署才支持区域配置功能。（不支持蓝绿部署和本地实例。） 有关就地部署的更多信息，请参阅[部署类型](primary-components.md#primary-components-deployment-type)。
        + [预定义的部署配置](deployment-configurations.md#deployment-configurations-predefined)不支持区域配置功能。要使用区域配置，必须按此处所述创建自定义部署配置。
        + 如果 CodeDeploy 需要回滚部署， CodeDeploy 将在随机主机上执行回滚操作。 （CodeDeploy不会像你预期的那样一次回滚一个区域。） 之所以选择这种回滚行为，是出于性能方面的考虑。有关回滚的更多信息，请参阅[使用重新部署和回滚部署 CodeDeploy](deployments-rollback-and-redeploy.md)。

     1. 如果选中了**启用区域配置**复选框，可以选择指定以下选项：
        + （可选）在**监控持续**时间中，指定在完成可用区部署后 CodeDeploy 必须等待的时间段（以秒为单位）。 CodeDeploy 在开始部署到下一个可用区之前，将等待这段时间。请考虑添加监控持续时间，以便让部署在下一个可用区内发布之前，有时间在一个可用区中证明自己（或“烘焙”）。如果您未指定监控持续时间，则 CodeDeploy 会立即开始部署到下一个可用区。有关**监控持续时间**设置如何发挥作用的更多信息，请参阅 [关于每个可用区最小运行正常的实例数](instances-health.md#minimum-healthy-hosts-az)。
        + （可选）选择**为第一个区域添加监控持续时间**以设置仅适用于第一个可用区的监控持续时间。如果您想为第一个可用区留出额外的烘焙时间，可以设置此选项。如果您未在 “**添加第一个区域监控持续时间**” 中指定值，则 CodeDeploy 使用第一个可用区域的**监控持续时间**值。
        + （可选）在**每个区域正常运行的最少主机数**下，指定在部署期间每个可用区必须保持可用的实例的数量或百分比。选择 **FLEET\$1PERCENT** 以指定一个百分比，或选择 **HOST\$1COUNT** 以指定一个数字。此字段将与**正常运行的最少主机数**字段共同发挥作用。有关更多信息，请参阅 [关于每个可用区最小运行正常的实例数](instances-health.md#minimum-healthy-hosts-az)。

          如果您未在 “**每个区域的最小运行状况主机数**” 下指定值，则 CodeDeploy 使用默认值`0`百分比。
   + 如果您选择了 **AWS Lambda** 或 **Amazon ECS**：

     1. 对于**类型**，请选择**线性**或**金丝雀**。

     1. 在**分步**和**间隔**字段中，执行以下任一操作：
        + 如果您选择了**金丝雀**，请为**分步**输入要转移的流量百分比，介于 1 和 99 之间。这是在第一次递增中转移的流量百分比。剩余的流量将在选定的时间间隔后在第二次递增中转移。

          对于**间隔**，请输入第一次和第二次流量转移之间的分钟数。
        + 如果您选择了**线性**，请为**分步**输入要转移的流量百分比，介于 1 和 99 之间。这是在每个间隔开始时转移的流量百分比。

          对于**间隔**，请输入每两次增量转移之间的分钟数。

1. 选择**创建部署配置**。

   现在，您就有了可以与部署组关联的部署配置。

## 使用 CodeDeploy (AWS CLI) 创建部署配置
<a name="deployment-configurations-create-cli"></a>

要使用创建部署配置，请调用[create-deployment-config](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-config.html)命令。 AWS CLI 



以下示例创建了一个名为 `ThreeQuartersHealthy` 的 EC2/本地部署配置，此配置要求 75% 的目标实例在部署期间保持正常运行状态：

```
aws deploy create-deployment-config --deployment-config-name ThreeQuartersHealthy --minimum-healthy-hosts type=FLEET_PERCENT,value=75
```



以下示例创建了一个名为 `300Total50PerAZ` 的 EC2/本地部署配置，此配置要求在每个部署中，总共要有 300 个目标实例保持正常运行状态，每个可用区要有 50 个目标实例保持正常运行状态。它还会将监控持续时间设置为 1 小时。

```
aws deploy create-deployment-config --deployment-config-name 300Total50PerAZ --minimum-healthy-hosts type=HOST_COUNT,value=300 --zonal-config '{"monitorDurationInSeconds":3600,"minimumHealthyHostsPerZone":{"type":"HOST_COUNT","value":50}}'
```





以下示例创建了一个名为的 AWS Lambda 部署配置。`Canary25Percent45Minutes`它使用 Canary 流量转移在第一次递增中转移 25% 的流量。其余 75% 在 45 分钟后进行转移：

```
aws deploy create-deployment-config --deployment-config-name Canary25Percent45Minutes --traffic-routing-config "type="TimeBasedCanary",timeBasedCanary={canaryPercentage=25,canaryInterval=45}" --compute-platform Lambda
```



以下示例创建了一个名为 `Canary25Percent45Minutes` 的 Amazon ECS 部署配置。它使用 Canary 流量转移在第一次递增中转移 25% 的流量。其余 75% 在 45 分钟后进行转移：

```
aws deploy create-deployment-config --deployment-config-name Canary25Percent45Minutes --traffic-routing-config "type="TimeBasedCanary",timeBasedCanary={canaryPercentage=25,canaryInterval=45}" --compute-platform ECS
```

# 使用查看部署配置详细信息 CodeDeploy
<a name="deployment-configurations-view-details"></a>

您可以使用 CodeDeploy 控制台 AWS CLI、或 CodeDeploy APIs 来查看与您的 AWS 账户关联的部署配置的详细信息。有关预定义 CodeDeploy 部署配置的描述，请参阅[EC2/本地计算平台的预定义部署配置](deployment-configurations.md#deployment-configurations-predefined)。

**Topics**
+ [查看部署配置详细信息（控制台）](#deployment-configurations-view-details-console)
+ [查看部署配置（CLI）](#deployment-configurations-view-details-cli)

## 查看部署配置详细信息（控制台）
<a name="deployment-configurations-view-details-console"></a>

要使用 CodeDeploy 控制台查看部署配置名称列表，请执行以下操作：

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/codede](https://console.aws.amazon.com/codedeploy) ploy 上打开 CodeDeploy 控制台。
**注意**  
使用您在[入门 CodeDeploy](getting-started-codedeploy.md)中设置的同一用户登录。

1. 在导航窗格中，展开**部署**，然后选择**部署配置**。

    在这里，您可以查看每个部署配置的部署配置名称和条件。
**注意**  
如果未显示任何条目，请确保选择了正确的区域。在导航栏的区域选择器中，选择[区域和终端节点中列出的区域](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)之一*AWS 一般参考*。 CodeDeploy 仅在这些地区支持。

## 查看部署配置（CLI）
<a name="deployment-configurations-view-details-cli"></a>

要使用查看部署配置的详细信息，请调用`get-deployment-config`命令或`list-deployment-configs`命令。 AWS CLI 

要查看有关单个部署配置的详细信息，请调用 [get-deployment-config](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-config.html) 命令，并指定唯一的部署配置名称。

要查看有关多个部署配置的详细信息，请调用 [list-deployments](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployments.html) 命令。

# 使用删除部署配置 CodeDeploy
<a name="deployment-configurations-delete"></a>

您可以使用 AWS CLI 或删除 CodeDeploy APIs 与您的 AWS 账户关联的自定义部署配置。您无法删除内置部署配置，例如 `CodeDeployDefault.AllAtOnce`、`CodeDeployDefault.HalfAtATime` 和 `CodeDeployDefault.OneAtATime`。

**警告**  
您无法删除仍在使用中的自定义部署配置。如果您删除未使用的自定义部署配置，则不再能够将它与新部署和新部署组关联。并且无法撤消。

要使用删除部署配置，请调用[delete-deployment-config](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-config.html)命令，指定部署配置名称。 AWS CLI 要查看部署配置名称的列表，请调用 [list-deployment-configs](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-configs.html) 命令。

以下示例删除名为的部署配置 ThreeQuartersHealthy。

```
aws deploy delete-deployment-config --deployment-config-name ThreeQuartersHealthy
```