

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

# 使用创建部署配置 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
```