

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

# 在中使用部署组 CodeDeploy
<a name="deployment-groups"></a>

您可以为 CodeDeploy 应用程序指定一个或多个部署组。每个应用程序部署使用其中一个部署组。部署组包含在部署期间使用的设置和配置。大多数部署组设置取决于您的应用程序使用的计算平台。可以为任何计算平台的部署组配置某些设置，例如回滚、触发器和警报。

## Amazon ECS 计算平台部署中的部署组
<a name="deployment-group-ecs"></a>

在 Amazon ECS 部署中，部署组指定 Amazon ECS 服务、负载均衡器、可选测试侦听器和两个目标组。它还指定何时将流量重新路由到替换任务集以及在成功部署后何时终止原始任务集和 Amazon ECS 应用程序。

## AWS Lambda 计算平台部署中的部署组
<a name="deployment-group-lambda"></a>

在 L AWS ambda 部署中，部署组为函数的未来部署定义了一组 CodeDeploy配置。 AWS Lambda 例如，部署组指定如何将流量路由到新版本的 Lambda 函数。它还可以指定警报和回滚。 AWS Lambda 部署组中的单个部署可以覆盖一个或多个组配置。

## EC2/本地计算平台部署中的部署组
<a name="deployment-group-server"></a>

在 EC2/本地部署中，部署组是一组作为部署目标的单个实例。部署组中包含单独标记的实例和/或 Amazon EC2 Auto Scaling 组中的 Amazon EC2 实例。

在就地部署中，部署组中的实例会使用最新的应用程序修订进行更新。

在 blue/green 部署中，通过从一个或多个负载均衡器取消注册原始实例，然后注册一组通常已安装最新应用程序修订版的替换实例，将流量从一组实例重新路由到另一组实例。

您可以将多个部署组与 CodeDeploy 中的一个应用程序关联。这使得能够在不同的时间将一个应用程序修订部署到不同的实例组。例如，您可以使用一个部署组将一个应用程序修订部署到一组标记为 `Test` 的实例，以便在其中确保代码质量。接下来，将相同应用程序修订部署到包含标记为 `Staging` 的实例的部署组，以便进行进一步验证。最后，当您准备好向客户发布最新应用程序时，部署到包括标记为 `Production` 的实例的部署组。

您也可以使用多个标签组，进一步优化部署组中所包含实例的条件。有关信息，请参阅[为部署组的实例添加标签 CodeDeploy](instances-tagging.md)。

使用 CodeDeploy 控制台创建应用程序时，可以同时配置其第一个部署组。使用创建应用程序时，可以在单独的步骤中创建其第一个部署组。 AWS CLI 

要查看已与您的 AWS 账户关联的部署组列表，请参阅[使用查看部署组的详细信息 CodeDeploy](deployment-groups-view-details.md)。

有关 Amazon EC2 实例标签的信息，请参阅[通过控制台使用标签](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Using_Tags.html#Using_Tags_Console)。有关本地实例的信息，请参阅[使用本地实例 CodeDeploy](instances-on-premises.md)。有关 Amazon EC2 Auto Scaling 的信息，请参阅[CodeDeploy 与亚马逊 EC2 Auto Scaling 集成](integrations-aws-auto-scaling.md)。

## 主题
<a name="topiclist-deployment-groups"></a>
+ [使用创建部署组 CodeDeploy](deployment-groups-create.md)
+ [使用查看部署组的详细信息 CodeDeploy](deployment-groups-view-details.md)
+ [使用更改部署组设置 CodeDeploy](deployment-groups-edit.md)
+ [为部署组配置高级选项](deployment-groups-configure-advanced-options.md)
+ [使用删除部署组 CodeDeploy](deployment-groups-delete.md)

# 使用创建部署组 CodeDeploy
<a name="deployment-groups-create"></a>

您可以使用 CodeDeploy 控制台、 AWS CLI CodeDeploy APIs、或 CloudFormation 模板来创建部署组。有关使用 CloudFormation 模板创建部署组的信息，请参阅[CloudFormation 模板供 CodeDeploy 参考](reference-cloudformation-templates.md)。

使用 CodeDeploy 控制台创建应用程序时，可以同时配置其第一个部署组。使用创建应用程序时， AWS CLI 需要在单独的步骤中创建其第一个部署组。

作为创建部署组的一部分，您必须指定服务角色。有关更多信息，请参阅 [步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)。

**Topics**
+ [

# 为就地部署创建部署组（控制台）
](deployment-groups-create-in-place.md)
+ [

# 为 EC2/本地部署创建 blue/green 部署组（控制台）
](deployment-groups-create-blue-green.md)
+ [

# 为 Amazon ECS 部署创建部署组（控制台）
](deployment-groups-create-ecs.md)
+ [

# 在 Elastic Load Balancing 中为 CodeDeploy Amazon EC2 部署设置负载均衡器
](deployment-groups-create-load-balancer.md)
+ [

# 为 A CodeDeploy mazon ECS 部署设置负载均衡器、目标组和侦听器
](deployment-groups-create-load-balancer-for-ecs.md)
+ [

# 创建部署组（CLI）
](deployment-groups-create-cli.md)

# 为就地部署创建部署组（控制台）
<a name="deployment-groups-create-in-place"></a>

要使用 CodeDeploy 控制台为就地部署创建部署组，请执行以下操作：

**警告**  
以下情况下请勿按照这些步骤操作：  
您尚未为实例做好在应用程序的首次 CodeDeploy 部署中使用的准备。要设置您的实例，请按照[使用以下实例 CodeDeploy](instances.md)中的说明操作，然后执行本主题中的步骤。
您需要创建使用自定义部署配置的部署组，但您尚未创建部署配置。按照[使用创建部署配置 CodeDeploy](deployment-configurations-create.md)中的说明操作，然后执行本主题中的步骤。
您没有至少信任中描述 CodeDeploy 的信任和权限的服务角色[步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)。要创建和配置服务角色，请按照[步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)中的说明操作，然后执行本主题中的步骤。
您想在 Elastic Load Balancing 中选择经典负载均衡器、应用程序负载均衡器或网络负载均衡器进行就地部署，但尚未创建。

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

1. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1. 在 **Applications** 页上，选择要为其创建部署组的应用程序的名称。

1. 在应用程序页面的 **Deployment groups（部署组）**选项卡上，选择 **Create deployment group（创建部署组）**。

1. 在 **Deployment group name（部署组名称）**中，输入一个描述部署组的名称。
**注意**  
如果您需要使用其他部署组中使用的相同设置（包括部署组名称；标签和/或 Amazon EC2 Auto Scaling 组名称；部署配置），请在此页上指定这些设置。尽管此新部署组和现有部署组具有相同的名称，但仍将其 CodeDeploy 视为单独的部署组，因为它们各自与不同的应用程序关联。

1. 在 **Service role (服务角色)** 中，选择向 CodeDeploy 授予访问您的目标实例的权限的服务角色。

1. 在**部署类型**中，选择**就地**。

1. 在**环境配置**中，执行以下操作：

   1. 如果您想将应用程序部署到 Amazon EC2 Auto Scaling 组中，请选择 **Amazon EC2 Auto Scaling 组**，然后选择要将应用程序修订部署到的 Amazon EC2 Auto Scaling 组的名称。当新的 Amazon EC2 实例作为 Amazon EC2 Auto Scaling 组的一部分启动时， CodeDeploy 可以自动将您的修订部署到新实例。您最多可以将 10 个 Amazon EC2 Auto Scaling 组添加到一个部署组。有关更多信息，请参阅 [CodeDeploy 与亚马逊 EC2 Auto Scaling 集成](integrations-aws-auto-scaling.md)。

   1. 

      如果您选择了 **Amazon EC2 Auto Scaling 组**，则可以选择**向 Auto Scaling 组添加**终止挂钩，以便在创建或更新部署组时将终止挂钩 CodeDeploy 安装到您的 Auto Scaling 组中。安装此挂钩后， CodeDeploy 将执行终止部署。有关更多信息，请参阅 [在 Auto Scaling 横向缩减事件期间启用终止部署](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-behaviors-hook-enable)。

   1. 如果您想为实例添加标签，请选择 **Amazon EC2 实例**或**本地实例**。在**键**和**值**字段中，输入用于标记实例的键值对的值。一个标签组中最多可标记 10 对键值对。

      1. 您可以在**值**字段中使用通配符标识以特定模式标记的所有实例，例如类似的 Amazon EC2 实例、成本中心和组名称等。例如，如果您在 “**键**” 字段中选择 “**名称**”，然后在 “**值**” 字段**GRP-\$1a**中输入，则会 CodeDeploy 标识符合该模式的所有实例**GRP-1a**，例如**GRP-2a**、和**GRP-XYZ-a**。

      1. **Value（值）**字段区分大小写。

      1. 要从列表中删除键值对，请选择删除图标。

      当 CodeDeploy 找到与每个指定的键值对或 Amazon EC2 Auto Scaling 组名称匹配的实例时，它会显示匹配的实例的数量。要查看有关这些实例的更多信息，请单击该数字。

      如果您希望更精细地确定部署实例的条件，请选择 **Add tag group** 创建标签组。您最多可以创建三个标签组，每组中最多可包含 10 对键值对。如果在部署组中使用多个标签组，只有所有标签组均标记出的实例才会包含在部署组中。也就是说，只有与每组中至少一个标签匹配的实例才会包含在部署组中。

      有关使用标签组优化部署组的信息，请参阅[为部署组的实例添加标签 CodeDeploy](instances-tagging.md)。

1. 在 S **ystems Manager 的 CodeDeploy 代理配置**中，指定您希望如何在部署组中的实例上安装和更新代理。有关 CodeDeploy 代理的更多信息，请参阅[使用代 CodeDeploy 理](https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/codedeploy-agent.html)。有关 Systems Manager 的详细信息，请参阅[什么是 Systems Manager？](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)

   1. **从不**：跳过使用 Systems Manager 配置 CodeDeploy 安装。实例必须安装代理才能在部署中使用，因此只有在以其他方式安装 CodeDeploy 代理时才应选择此选项。

   1. **仅限一次**：Systems Manager 将在部署组中的每个实例上安装一次 CodeDeploy 代理。

   1. **立即安排更新**：Systems Manager 将创建与状态管理器的关联，该关联将按照您配置的计划安装 CodeDeploy 代理。有关状态管理器和关联的详细信息，请参阅[关于状态管理器](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-state-about.html)。

1. 在 **Deployment configuration（部署配置）**中，选择一个部署配置以控制部署实例的速率，如一次部署一个或一次全部部署。有关部署配置的更多信息，请参阅[在中使用部署配置 CodeDeploy](deployment-configurations.md)。

1. （可选）在**负载均衡器**中，选择**启用负载平衡**，然后从列表中选择经典负载均衡器、Application Load Balancer 目标组和 Network Load Balancer 目标组，以便在 CodeDeploy 部署期间管理实例的流量。您最多可以选择 10 个经典负载均衡器和 10 个目标组，总共可以选择 20 个项目。确保您要部署到的 Amazon EC2 实例已注册到选定的负载均衡器（经典负载均衡器）或目标组（应用程序负载均衡器和网络负载均衡器）。

   在部署期间，原始实例将从选定的负载均衡器和目标组中注销，以防止在部署期间将流量路由到这些实例。部署完成后，将向*所有* 选定的经典负载均衡器和目标组重新注册每个实例。

   有关用于 CodeDeploy 部署的负载均衡器的更多信息，请参阅[CodeDeploy 与 Elastic Load Balancing](integrations-aws-elastic-load-balancing.md)。
**警告**  
如果您要在此部署组中同时配置 Auto Scaling 组和 Elastic Load Balancing 负载均衡器，并且想要[将负载均衡器连接到 Auto Scaling 组](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)，我们建议您在通过此部署组创建 CodeDeploy 部署*之前*完成此附件。在创建部署后尝试完成连接可能会导致所有实例意外从负载均衡器取消注册。

1. （可选）展开 “**高级**” 并配置要包含在部署中的任何选项，例如 Amazon SNS 通知触发器、Amazon CloudWatch 警报、Auto Scaling 选项或自动回滚。

   有关更多信息，请参阅 [为部署组配置高级选项](deployment-groups-configure-advanced-options.md)。

1. 选择 **Create deployment group（创建部署组）**。

# 为 EC2/本地部署创建 blue/green 部署组（控制台）
<a name="deployment-groups-create-blue-green"></a>

要使用 CodeDeploy 控制台为蓝/绿部署创建部署组，请执行以下操作：

**警告**  
以下情况下请勿按照这些步骤操作：  
在 blue/green 部署过程中，您没有要替换的安装了 CodeDeploy 代理的实例。要设置您的实例，请按照[使用以下实例 CodeDeploy](instances.md)中的说明操作，然后执行本主题中的步骤。
您需要创建使用自定义部署配置的应用程序，但您尚未创建部署配置。按照[使用创建部署配置 CodeDeploy](deployment-configurations-create.md)中的说明操作，然后执行本主题中的步骤。
您没有至少信任中描述 CodeDeploy 的信任和权限的服务角色[步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)。要创建和配置服务角色，请按照[步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)中的说明操作，然后执行本主题中的步骤。
您尚未在 Elastic Load Balancing 中创建经典负载均衡器或应用程序负载均衡器来注册替换环境中的实例。有关更多信息，请参阅 [在 Elastic Load Balancing 中为 CodeDeploy Amazon EC2 部署设置负载均衡器](deployment-groups-create-load-balancer.md)。

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

1. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1. 在 **Applications** 页上，选择要为其创建部署组的应用程序的名称。

1. 在应用程序页面的 **Deployment groups（部署组）**选项卡上，选择 **Create deployment group（创建部署组）**。

1. 在 **Deployment group name（部署组名称）**中，输入一个描述部署组的名称。
**注意**  
如果您需要使用其他部署组中使用的相同设置（包括部署组名称、标签、Amazon EC2 Auto Scaling 组名称和部署配置），请在此页上选择这些设置。虽然这个新的部署组与现有部署组同名， CodeDeploy 仍认为它们是两个部署组，因为与它们关联的应用程序各不相同。

1. 在 **Service role (服务角色)** 中，选择向 CodeDeploy 授予访问您的目标实例的权限的服务角色。

1. 在 **Deployment type（部署类型）**中选择 **Blue/green（蓝/绿）**。

1. 在**环境配置**中，执行以下操作：
   + 选择用于为您的替换环境提供实例的方法。您有以下选项：
     + **自动复制 Amazon EC2 Auto Scaling 群组**：通过复制您指定的群组来 CodeDeploy创建一个 Amazon EC2 Auto Scaling 群组。
     + **Manually provision instances**：在创建部署前，您不会为替换环境指定实例。您必须在启动部署前创建实例。您应于此处指定要替换的实例。
   + 如果您选择了 “**自动复制 Amazon EC2 Auto Scaling 组**”，则可以选择**向 Auto Scaling 组添加**终止挂钩，以便在创建或更新部署组时将终止挂钩 CodeDeploy 安装到您的 Auto Scaling 组中。安装此挂钩后， CodeDeploy 将执行终止部署。有关更多信息，请参阅 [在 Auto Scaling 横向缩减事件期间启用终止部署](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-behaviors-hook-enable)。

1. 在 S **ystems Manager 的 CodeDeploy 代理配置**中，指定您希望如何在部署组中的实例上安装和更新代理。有关 CodeDeploy 代理的更多信息，请参阅[使用代 CodeDeploy 理](https://docs.aws.amazon.com/en_us/codedeploy/latest/userguide/codedeploy-agent.html)。有关 Systems Manager 的详细信息，请参阅[什么是 Systems Manager？](https://docs.aws.amazon.com/systems-manager/latest/userguide/what-is-systems-manager.html)

   1. **从不**：跳过使用 Systems Manager 配置 CodeDeploy 安装。实例必须安装代理才能在部署中使用，因此只有在以其他方式安装 CodeDeploy 代理时才应选择此选项。

   1. **仅限一次**：Systems Manager 将在部署组中的每个实例上安装一次 CodeDeploy 代理。

   1. **立即安排更新**：Systems Manager 将创建与状态管理器的关联，该关联将按照您配置的计划安装 CodeDeploy 代理。有关状态管理器和关联的详细信息，请参阅[关于状态管理器](https://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-state-about.html)。

1. 根据您在步骤 8 中的选择，请执行以下操作之一：
   + 如果您选择了**自动复制 Amazon EC2 Auto Scaling 组**：在 **Amazon EC2 Auto Scaling 组**中，选择或输入您要用作模板的 Amazon EC2 Auto Scaling 组的名称，以便为替换环境中的实例创建 Amazon EC2 Auto Scaling 组。将在替换环境中创建当前在您选择的 Amazon EC2 Auto Scaling 组中正常运行的实例数。
   + 如果您选择了**手动预置实例**：选择 **Amazon EC2 Auto Scaling 组**和/或 **Amazon EC2 Auto Scaling 实例**，以指定要添加到此部署组的实例。输入 Amazon EC2 Auto Scaling标签值或 Amazon EC2 Auto Scaling 组名称以标识原始环境中的实例（即，您要替换的实例或正在运行当前应用程序修订的实例）。

1. 在**负载均衡器**中，选择**启用负载均衡**，然后从列表中选择要注册替换 Amazon EC2 实例的经典负载均衡器、应用程序负载均衡器目标组和网络负载均衡器目标组。每个替换实例都将在*所有* 选定的经典负载均衡器和目标组中注册。您最多可以选择 10 个经典负载均衡器和 10 个目标组，总共可以选择 20 个项目。

   根据您选择的**流量重新路由**和**部署配置**设置，流量将从原始实例重新路由到替换实例。

   有关用于 CodeDeploy 部署的负载均衡器的更多信息，请参阅[CodeDeploy 与 Elastic Load Balancing](integrations-aws-elastic-load-balancing.md)。
**警告**  
如果您要在此部署组中同时配置 Auto Scaling 组和 Elastic Load Balancing 负载均衡器，并且想要将[负载均衡器连接到 Auto Scaling 组](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)，我们建议您在通过此部署组创建 CodeDeploy 部署*之前*完成此附件。在创建部署后尝试完成连接可能会导致所有实例意外从负载均衡器取消注册。

1. 在 **Deployment settings** 中，查看用于将流量重新路由到替换环境的默认选项、要用于部署的部署配置以及在部署后处理原始环境中的实例的方式。

   如果您要更改设置，请继续执行下一步。否则，请跳至步骤 14。

1. 要更改部署的 blue/green 部署设置，请选择以下任一设置。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_cn/codedeploy/latest/userguide/deployment-groups-create-blue-green.html)

1. （可选）在 “**高级**” 中，配置要包含在部署中的选项，例如 Amazon SNS 通知触发器、Amazon CloudWatch 警报、Auto Scaling 选项或自动回滚。

   有关在部署组中指定高级选项的信息，请参阅[为部署组配置高级选项](deployment-groups-configure-advanced-options.md)。

1. 选择 **Create deployment group（创建部署组）**。

# 为 Amazon ECS 部署创建部署组（控制台）
<a name="deployment-groups-create-ecs"></a>

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

1. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1.  在**应用程序表**中，选择与要编辑的部署组关联的应用程序的名称。

1.  在应用程序页面的 **Deployment groups（部署组）**中，选择要编辑的部署组的名称。

1. 在应用程序页面的 **Deployment groups（部署组）**选项卡上，选择 **Create deployment group（创建部署组）**。有关为 Amazon ECS 部署创建部署组所需内容的更多信息，请参阅[在开始 Amazon ECS 部署之前](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs)。

1. 在 **Deployment group name（部署组名称）**中，输入一个描述部署组的名称。
**注意**  
如果您需要使用其他部署组中使用的相同设置（包括部署组名称和部署配置），请在此页上选择这些设置。尽管此新组和现有组可能具有相同的名称，但仍将其 CodeDeploy 视为单独的部署组，因为每个部署组都与单独的应用程序相关联。

1. 在**服务角色**中，选择一个授予 CodeDeploy对 Amazon ECS 访问权限的服务角色。有关更多信息，请参阅 [步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)。

1.  从**负载均衡器名称**中，选择将流量提供给 Amazon ECS 服务的负载均衡器的名称。

1.  在**生产侦听器端口**中，选择将生产流量路由至您的 Amazon ECS 服务的侦听器的端口和协议。

1.  （可选）从**测试侦听器端口**中，选择测试侦听器的端口和协议，该侦听器在部署期间将流量路由至 Amazon ECS 服务中的替换任务集。您可以在挂钩期间运行 AppSpec 的文件中指定一个或多个 Lambda 函数。`AfterAllowTestTraffic`这些函数可以运行验证测试。如果验证测试失败，将触发部署回滚。如果验证测试成功，则会触发部署生命周期中的下一个挂钩 `BeforeAllowTraffic`。如果未指定测试侦听器端口，则 `AfterAllowTestTraffic` 挂接期间不会发生任何事情。有关更多信息，请参阅 [AppSpec 亚马逊 ECS 部署的 “挂钩” 部分](reference-appspec-file-structure-hooks.md#appspec-hooks-ecs)。

1. 从**目标组 1 名称**和**目标组 2 名称**中，选择部署期间用于路由流量的目标组。 CodeDeploy 将一个目标组绑定到您的 Amazon ECS 服务的原始任务集，将另一个目标组绑定到其替换任务集。有关更多信息，请参阅[应用程序负载均衡器的目标组](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-target-groups.html)。

1.  选择**立即重新路由流量**或**指定重新路由流量的时间**，以确定何时将流量重新路由到更新后的 Amazon ECS 服务。

    如果您选择**立即重新路由流量**，则部署会在预置替换任务集后自动重新路由流量。

    如果选择**指定重新路由流量的时间**，则选择在成功预置替换任务集后要等待的天数、小时数和分钟数。在这段等待时间内，将在 AppSpec 文件中指定的 Lambda 函数中执行验证测试。如果在重新路由流量之前等待时间已过，则部署状态将更改为 `Stopped`。

1.  对于**原始修订终止**，请选择成功部署后，在终止 Amazon ECS 服务中的原始任务集之前要等待的天数、小时数和分钟数。

1. （可选）在 “**高级**” 中，配置要包含在部署中的任何选项，例如 Amazon SNS 通知触发器、Amazon CloudWatch 警报或自动回滚。

   有关更多信息，请参阅 [为部署组配置高级选项](deployment-groups-configure-advanced-options.md)。

# 在 Elastic Load Balancing 中为 CodeDeploy Amazon EC2 部署设置负载均衡器
<a name="deployment-groups-create-load-balancer"></a>

在运行任何 blue/green 部署或要在部署组中为其指定可选负载均衡器的就地部署之前，您必须在 Elastic Load Balancing 中至少创建一个经典负载均衡器、应用程序负载均衡器或网络负载均衡器。对于 blue/green 部署，您可以使用该负载均衡器注册构成替换环境的实例。您的原始环境中的实例可选择性地注册到此同一负载均衡器。对于就地部署，负载均衡器用于取消注册正在处理的实例 CodeDeploy，并在工作完成后重新注册它们。

CodeDeploy 支持 blue/green 并就地部署到多个负载均衡器后面的 Amazon EC2 实例。例如，假设您有 200 个 Amazon EC2 实例，其中 100 个在 2 个经典负载均衡器上注册，另外 100 个在 2 个应用程序负载均衡器的 4 个目标组上注册。在这种情况下，允许 CodeDeploy 您 blue/green 对所有 200 个实例进行就地部署，即使它们分布在 2 个经典负载均衡器、2 个应用程序负载均衡器和 4 个目标组中。

CodeDeploy 最多支持 10 个经典负载均衡器和 10 个目标组，总共支持 20 个项目。

要配置一个或多个经典负载均衡器，请按照《经典负载均衡器用户指南》**中的[教程：创建经典负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-getting-started.html)中的说明进行操作。注意以下几点：
+ 在**步骤 2：定义负载均衡器**中的**创建内部负载均衡器**中，选择创建实例时所选的同一 VPC。
+ 在**步骤 5：向负载均衡器注册 EC2 实例**中，选择当前位于部署组中的实例（就地部署）或已指定位于原始环境中的实例（蓝/绿部署）。
+ 在**步骤 7：创建并验证您的负载均衡器**中，记录负载均衡器的 DNS 地址。

  例如，如果您已将负载均衡器命名为 `my-load-balancer`，则 DNS 地址将以类似于 `my-load-balancer-1234567890.us-east-2.elb.amazonaws.com` 的格式显示。

要配置一个或多个应用程序负载均衡器，请按照以下主题之一中的说明进行操作：
+ [创建应用程序负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html)
+ [教程：使用 Application Load Balancer AWS CLI](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/tutorial-application-load-balancer-cli.html)

要配置一个或多个网络负载均衡器，请按照以下主题之一中的说明进行操作：
+  [创建网络负载均衡器](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) 
+  [教程：使用创建 Network Load Balancer AWS CLI](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/network-load-balancer-cli.html) 

# 为 A CodeDeploy mazon ECS 部署设置负载均衡器、目标组和侦听器
<a name="deployment-groups-create-load-balancer-for-ecs"></a>

 在使用 Amazon ECS 计算平台运行部署之前，必须创建应用程序负载均衡器或网络负载均衡器、两个目标组以及一个或两个侦听器。本主题介绍如何创建应用程序负载均衡器。有关更多信息，请参阅 [在开始 Amazon ECS 部署之前](deployment-steps-ecs.md#deployment-steps-prerequisites-ecs)。

 其中一个目标组会将流量定向到 Amazon ECS 应用程序的原始任务集。另一个目标组会将流量定向到其替换任务集。在部署期间， CodeDeploy 创建替换任务集并将流量从原始任务集重新路由到新任务集。 CodeDeploy 决定每个任务集使用哪个目标组。

 侦听器 由负载均衡器用于将流量定向到目标组。必须提供一个生产侦听器。您可以指定一个可选的测试侦听器，在您运行验证测试时将流量定向到替换任务集。

 负载均衡器必须使用在不同的可用区中具有两个公有子网的 VPC。以下步骤介绍了如何确认默认 VPC、创建 Amazon EC2 应用程序负载均衡器，然后为负载均衡器创建两个目标组。有关更多信息，请参阅[您的网络负载均衡器的目标组](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-target-groups.html)。

## 验证您的默认 VPC、公有子网和安全组
<a name="deployment-groups-create-load-balancer-for-ecs-verify-vpc"></a>

 本主题演示了如何创建 Amazon EC2 应用程序负载均衡器、两个目标组和两个端口，以便在 Amazon ECS 部署过程中使用。其中一个端口是可选的，仅当您在部署过程中需要将流量定向到验证测试的测试端口时为必需。

1. 登录 AWS 管理控制台 并打开 Amazon VPC 控制台，网址为[https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/)。

1. 验证要使用的默认 VPC。在导航窗格中，选择**您的 VPCs**。请注意哪个 VPC 在**默认 VPC** 列中显示为**是**。这是您的默认 VPC。其中包含您使用的默认子网。

1. 选择 **Subnets（子网）**。记下**默认子网列中显示为 “**是**” IDs 的两个子网的子网**。您可以在创建负载均衡器 IDs 时使用它们。

1. 选择每个子网，然后选择 **Description（描述）**选项卡。验证要使用的子网是否位于不同的可用区中。

1. 选择子网，然后选择 **Route Table（路由表）**选项卡。要确认您要使用的每个子网是否为公有子网，请确认路由表中是否包含指向 Internet 网关链接的行。

1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 从导航窗格中，选择 **Security Groups（安全组）**。

1. 验证要使用的安全组是否可用，并记下其组 ID（例如，**sg-abcd1234**）。在创建负载均衡器时，您可以使用此 ID。

## 创建一个 Amazon EC2 应用程序负载均衡器、两个目标组和侦听器（控制台）
<a name="deployment-groups-create-load-balancer-for-ecs-console"></a>

要使用 Amazon EC2 控制台来创建 Amazon EC2 应用程序负载均衡器，请执行以下操作：

1. 登录 AWS 管理控制台 并打开 Amazon EC2 控制台，网址为[https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/)。

1. 在导航窗格中，选择**负载均衡器**。

1. 选择 **Create Load Balancer（创建负载均衡器）**。

1. 选择 **Application Load Balancer（应用程序负载均衡器）**，然后选择 **Create（创建）**。

1. 在 **Name（名称）**中，输入负载均衡器的名称。

1. 在 **Scheme（模式）**中，选择 **internet-facing（面向 internet）**。

1. 在 **IP address type（IP 地址类型）**中，选择 **ipv4**。

1. （可选）为负载均衡器配置第二个侦听器端口。您可以使用提供给该端口的测试流量，运行部署验证测试。

   1. 在 **Load Balancer Protocol（负载均衡器协议）**下，选择 **Add listener（添加侦听器）**。

   1. 在第二个侦听器的 **Load Balancer Protocol（负载均衡器协议）**下，选择 **HTTP**。

   1. 在 **Load Balancer Port（负载均衡器端口）**下，输入 **8080**。

1. 在 **Availability Zones（可用区）**的 **VPC** 中，选择默认 VPC，然后选择要使用的两个默认子网。

1. 选择**下一步：配置安全设置**。

1. 选择**下一步：配置安全组**。

1. 选择 **Select an existing security group（选择现有安全组）**，然后选择默认安全组并记下其 ID。

1. 选择**下一步：配置路由**。

1. 在 **Target group（目标组）**中，选择 **New target group（新建目标组）**并配置您的第一个目标组：

   1. 在 **Name（名称）**中，输入目标组名称（例如，**target-group-1**）。

   1. 在 **Target type（目标类型）**中，选择 **IP**。

   1. 在 **Protocol（协议）**中，选择 **HTTP**。在 **Port（端口）**中，输入 **80**。

   1. 选择**下一步：注册目标**。

1. 选择 **Next: Review（下一步：审核）**，然后选择 **Create（创建）**。

**为您的负载均衡器创建第二个目标组**

1. 在预配置您的负载均衡器后，打开 Amazon EC2 控制台。在导航窗格中，选择**目标组**。

1. 选择**创建目标组**。

1. 在 **Name（名称）**中，输入目标组名称（例如，**target-group-2**）。

1. 在 **Target type（目标类型）**中，选择 **IP**。

1. 在 **Protocol（协议）**中，选择 **HTTP**。在 **Port（端口）**中，输入 **80**。

1. 在 **VPC** 中，选择默认 VPC。

1. 选择**创建**。
**注意**  
要使 Amazon ECS 部署运行，您必须为您的负载均衡器创建了两个目标组。您在创建 Amazon ECS 服务时，可使用某个目标组的 ARN。有关更多信息，请参阅《Amazon ECS 用户指南》**中的[步骤 4：创建 Amazon ECS 服务](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-blue-green.html#create-blue-green-taskdef)。

## 创建一个 Amazon EC2 应用程序负载均衡器、两个目标组和侦听器（CLI）
<a name="deployment-groups-create-load-balancer-for-ecs-cli"></a>

要使用 AWS CLI创建应用程序负载均衡器，请执行以下操作：

1. 使用[create-load-balancer](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-load-balancer.html)命令创建 Application Load Balancer。指定不在相同可用区的两个子网以及安全组。

   ```
   aws elbv2 create-load-balancer --name bluegreen-alb \
   --subnets subnet-abcd1234 subnet-abcd5678 --security-groups sg-abcd1234 --region us-east-1
   ```

   输出包含负载均衡器的 Amazon 资源名称（ARN），格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642
   ```

1. 使用[create-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html)命令创建您的第一个目标组。 CodeDeploy 将此目标组的流量路由到您的服务中设置的原始任务或替换任务。

   ```
   aws elbv2 create-target-group --name bluegreentarget1 --protocol HTTP --port 80 \
   --target-type ip --vpc-id vpc-abcd1234 --region us-east-1
   ```

   输出包含第一个目标组的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4
   ```

1. 使用[create-target-group](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-target-group.html)命令创建第二个目标组。 CodeDeploy 将目标组的流量路由到您的第一个目标组未提供的任务集。例如，如果您的第一个目标组将流量路由到原始任务集，则该目标组会将流量路由到替换任务集。

   ```
   aws elbv2 create-target-group --name bluegreentarget2 --protocol HTTP --port 80 \
   --target-type ip --vpc-id vpc-abcd1234 --region us-east-1
   ```

   输出包含第二个目标组的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4
   ```

1. 使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) 命令创建侦听器，该侦听器具有将生产流量转发到端口 80 的默认规则。

   ```
   aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \
   --protocol HTTP --port 80 \
   --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget1/209a844cd01825a4 --region us-east-1
   ```

   输出包含侦听器的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4
   ```

1. （可选）使用 [create-listener](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-listener.html) 命令创建另一个侦听器，该侦听器具有将测试流量转发到端口 8080 的默认规则。您可以使用提供给该端口的测试流量，运行部署验证测试。

   ```
   aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:region:aws_account_id:loadbalancer/app/bluegreen-alb/e5ba62739c16e642 \
   --protocol HTTP --port 8080 \
   --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region:aws_account_id:targetgroup/bluegreentarget2/209a844cd01825a4 --region us-east-1
   ```

   输出包含侦听器的 ARN，格式如下：

   ```
   arn:aws:elasticloadbalancing:region:aws_account_id:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4
   ```

# 创建部署组（CLI）
<a name="deployment-groups-create-cli"></a>

要使用创建部署组，请调用[create-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment-group.html)命令，指定： AWS CLI 
+ 应用程序名称。要查看应用程序名称的列表，请调用 [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html) 命令。
+ 部署组的名称。将为指定应用程序创建具有此名称的部署组。部署组只能与一个应用程序关联。
+ 与用于标识要包含在部署组中的实例的标签、标签组或 Amazon EC2 Auto Scaling 组名称有关的信息。
+ 服务角色的 Amazon 资源名称 (ARN) 标识符， CodeDeploy 允许在与其他 AWS 服务交互时代表您的 AWS 账户执行操作。要获取服务角色 ARN，请参阅[获取服务角色 ARN（CLI）](getting-started-create-service-role.md#getting-started-get-service-role-cli)。有关服务角色的更多信息，请参阅《IAM 用户指南》**中的[角色术语和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html#roles-about-termsandconcepts)。
+ 与部署组关联的部署类型（就地部署或蓝/绿部署）的相关信息。
+ （可选）现有部署配置的名称。要查看部署配置列表，请参阅[使用查看部署配置详细信息 CodeDeploy](deployment-configurations-view-details.md)。如果未指定， CodeDeploy 将使用默认部署配置。
+ （可选）用于创建向订阅了 Amazon Simple Notification Service 主题的用户推送有关部署和实例事件的通知的触发器的命令。有关更多信息，请参阅 [使用 Amazon SNS 事件通知监控部署](monitoring-sns-event-notifications.md)。
+ （可选）用于将现有 CloudWatch 警报添加到部署组的命令，如果警报中指定的指标低于或超过定义的阈值，则会激活这些警报。
+ （可选）当部署失败或 CloudWatch 警报激活时，部署将回滚到上次已知良好的修订版的命令。
+ （可选）部署在自动扩缩横向缩减事件期间生成生命周期事件钩子时使用的命令。有关更多信息，请参阅 [Amazon EC2 Auto Scaling 是如何使用的 CodeDeploy](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-behaviors)。
+ 对于就地部署：
  + （可选）Elastic Load Balancing 中用于管理部署过程中实例流量的经典负载均衡器、应用程序负载均衡器或网络负载均衡器的名称。
+ 对于 blue/green 部署：
  +  blue/green 部署过程的配置：
    + 如何预置替换环境中的新实例。
    + 立即将流量重新路由到替换环境还是等待指定的一段时间后手动重新路由流量。
    + 是否应终止原始环境中的实例。
  + Elastic Load Balancer 中经典负载均衡器、应用程序负载均衡器或网络负载均衡器的名称，用于在替换环境中注册的实例。
**警告**  
如果您在部署组中同时配置 Auto Scaling 组和 Elastic Load Balancing 负载均衡器，并且想要将[负载均衡器连接到 Auto Scaling 组](https://docs.aws.amazon.com/autoscaling/ec2/userguide/attach-load-balancer-asg.html)，我们建议您在通过此 CodeDeploy 部署组创建部署*之前*完成此附件。在创建部署后尝试完成连接可能会导致所有实例意外从负载均衡器取消注册。

# 使用查看部署组的详细信息 CodeDeploy
<a name="deployment-groups-view-details"></a>

您可以使用 CodeDeploy 控制台 AWS CLI、或 CodeDeploy APIs 来查看与应用程序关联的所有部署组的详细信息。

**Topics**
+ [

## 查看部署组详细信息（控制台）
](#deployment-groups-view-details-console)
+ [

## 查看部署组详细信息（CLI）
](#deployment-groups-view-details-cli)

## 查看部署组详细信息（控制台）
<a name="deployment-groups-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. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1. 在 **Applications** 页上，选择与部署组关联的应用程序名称。
**注意**  
如果未显示任何条目，请确保选择了正确的区域。在导航栏的区域选择器中，选择[区域和终端节点中列出的区域](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)之一*AWS 一般参考*。 CodeDeploy 仅在这些地区支持。

1. 要查看有关单个部署组的详细信息，请在 **Deployment groups（部署组）**选项卡上，选择部署组的名称。

## 查看部署组详细信息（CLI）
<a name="deployment-groups-view-details-cli"></a>

要使用查看部署组的详细信息，请调用`get-deployment-group`命令或`list-deployment-groups`命令。 AWS CLI 

要查看有关单个部署组的详细信息，请调用 [get-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/get-deployment-group.html) 命令，并指定：
+ 与部署组关联的应用程序名称。要获取应用程序名称，请调用 [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html) 命令。
+ 部署组名称。要获取部署组名称，请调用 [list-deployment-groups](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-groups.html) 命令。

要查看部署组名称的列表，请调用 [list-deployment-groups](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-groups.html) 命令，并指定与部署组关联的应用程序名称。要获取应用程序名称，请调用 [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html) 命令。

# 使用更改部署组设置 CodeDeploy
<a name="deployment-groups-edit"></a>

您可以使用 CodeDeploy 控制台 AWS CLI、或 CodeDeploy APIs 来更改部署组的设置。

**警告**  
如果您希望部署组使用 not-yet-created自定义部署组，请不要使用这些步骤。而是按照[使用创建部署配置 CodeDeploy](deployment-configurations-create.md)中的说明操作，然后返回到本主题。如果您希望部署组使用不同的 not-yet-created服务角色，请不要使用这些步骤。服务角色必须至少信任 CodeDeploy 中描述的权限[步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)。要创建和配置具有正确权限的服务角色，请按照[步骤 2：为创建服务角色 CodeDeploy](getting-started-create-service-role.md)中的说明操作，然后返回到本主题。

**Topics**
+ [

## 更改部署组设置（控制台）
](#deployment-groups-edit-console)
+ [

## 更改部署组设置（CLI）
](#deployment-groups-edit-cli)

## 更改部署组设置（控制台）
<a name="deployment-groups-edit-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. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1. 在应用程序列表中，选择与要更改的部署组关联的应用程序的名称。
**注意**  
如果未显示任何条目，请确保选择了正确的区域。在导航栏的区域选择器中，选择[区域和终端节点中列出的区域](https://docs.aws.amazon.com/general/latest/gr/rande.html#codedeploy_region)之一*AWS 一般参考*。 CodeDeploy 仅在这些地区支持。

1. 选择 **Deployment groups（部署组）**选项卡，然后选择要更改的部署组的名称。

1. 在 **Depoyment group（部署组）**页面上，选择 **Edit（编辑）**。

1. 根据需要修改部署组选项。

   有关部署组组件的信息，请参阅[使用创建部署组 CodeDeploy](deployment-groups-create.md)。

1. 选择**保存更改**。

   

## 更改部署组设置（CLI）
<a name="deployment-groups-edit-cli"></a>

要使用更改部署组设置，请调用[update-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/update-deployment-group.html)命令，指定： AWS CLI 
+ 对于 EC2/本地和 Lambda AWS 部署：
  + 应用程序名称。要查看应用程序名称的列表，请调用 [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html) 命令。
  + 当前部署组名称。要查看部署组名称的列表，请调用 [list-deployment-groups](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-groups.html) 命令。
  + （可选）不同的部署组名称。
  + （可选）与服务角色相对应的不同的 Amazon 资源名称 (ARN)， CodeDeploy 允许在与其他 AWS 服务交互时代表您的 AWS 账户执行操作。要获取服务角色 ARN，请参阅[获取服务角色 ARN（CLI）](getting-started-create-service-role.md#getting-started-get-service-role-cli)。有关服务角色的更多信息，请参阅《IAM 用户指南》**中的[角色术语和概念](https://docs.aws.amazon.com/IAM/latest/UserGuide/cross-acct-access.html)。
  + （可选）部署配置的名称。要查看部署配置列表，请参阅[使用查看部署配置详细信息 CodeDeploy](deployment-configurations-view-details.md)。（如果未指定，则 CodeDeploy 使用默认部署配置。）
  + （可选）用于向部署组添加一个或多个现有 CloudWatch 警报的命令，如果警报中指定的指标低于或超过定义的阈值，则这些警报将被激活。
  + （可选）当部署失败或 CloudWatch 警报激活时，部署将回滚到上次已知良好的修订版的命令。
  + （可选）部署在自动扩缩横向缩减事件期间生成生命周期事件钩子时使用的命令。有关更多信息，请参阅 [Amazon EC2 Auto Scaling 是如何使用的 CodeDeploy](integrations-aws-auto-scaling.md#integrations-aws-auto-scaling-behaviors)。
  + （可选）用于创建或更新触发器的命令。触发器用于向 Amazon Simple Notification Service 中的某个主题发布信息，以便该主题的订阅者可以接收有关此部署组中的部署和实例事件的通知。有关信息，请参阅[使用 Amazon SNS 事件通知监控部署](monitoring-sns-event-notifications.md)。
+ 仅对于 EC2/本地部署：
  + （可选）唯一标识要包括在部署组中的实例的替换标签或标签组。
  + （可选）要添加到部署组的替换 Amazon EC2 Auto Scaling 组的名称。
+ 仅适用于 Amazon ECS 部署：
  +  要部署的 Amazon ECS 服务。
  +  负载均衡器信息，包括应用程序负载均衡器或网络负载均衡器，Amazon ECS 部署所需的目标组，以及生产和可选的测试侦听器信息。

# 为部署组配置高级选项
<a name="deployment-groups-configure-advanced-options"></a>

在创建或更新部署组时，可以配置大量选项以更好地控制和监督部署组的部署。

使用此页面上的信息可帮助您在以下主题中使用部署组时配置高级选项：
+ [使用创建应用程序 CodeDeploy](applications-create.md)
+ [使用创建部署组 CodeDeploy](deployment-groups-create.md)
+ [使用更改部署组设置 CodeDeploy](deployment-groups-edit.md)

**Amazon SNS 通知触发器**：您可以向 CodeDeploy 部署组添加触发器，以接收与该部署组中的部署相关的事件的通知。对于您加入到该触发器操作中的 Amazon SNS 主题，通知将发送到已订阅该主题的接收人。

您必须已经设置了此触发器将指向的 Amazon SNS 主题，并且 CodeDeploy必须有权从此部署组向该主题发布内容。如果您尚未完成这些设置步骤，可稍后向部署组添加触发器。

如果您需要立即创建触发器以接收有关此应用程序的部署组中的部署事件的通知，请选择 **Create trigger**。

如果您要部署到 Amazon EC2 实例，则可以为实例创建通知并接收有关实例的通知。

有关更多信息，请参阅 [使用 Amazon SNS 事件通知监控部署](monitoring-sns-event-notifications.md)。

**Amazon CloudWatch 警报**：您可以创建一个 CloudWatch 警报，在您指定的时间段内监视单个指标，并根据该指标在多个时间段内相对于给定阈值的值执行一项或多项操作。对于 Amazon EC2 部署，您可以为 CodeDeploy 操作中使用的实例或 Amazon EC2 Auto Scaling 组创建警报。对于 AWS Lambda 和 Amazon ECS 部署，您可以为 Lambda 函数中的错误创建警报。

您可以将部署配置为在 Amazon CloudWatch 警报检测到指标已低于或超过定义的阈值时停止。

必须 CloudWatch 先在中创建警报，然后才能将其添加到部署组。

1. 要向部署组添加警报监视，请在 **Alarms（警报）**中，选择 **Add alarm（添加警报）**。

1. 输入您已经设置的用于监控此部署的 CloudWatch 警报的名称。

   您必须完全按照中创建的 CloudWatch 警报输入警报 CloudWatch。要查看警报列表，请在上打开 CloudWatch 控制台[https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/)，然后选择 ALAR **M**。

其他选项:
+ 如果您希望继续部署而不考虑已添加的警报，请选择 **Ignore alarm configuration**。

  当您希望暂时停用对部署组的警报监视而无需稍后重新添加相同警报时，此选项很有用。
+ （可选）如果您希望在无法从 Amazon 检索警报状态的情况下继续部署 CloudWatch，请选择 “**即使警报状态不可用，也要继续部署**”。 CodeDeploy 
**注意**  
此选项对应于 CodeDeploy API **ignorePollAlarmFailure** 中的[AlarmConfiguration](https://docs.aws.amazon.com/codedeploy/latest/APIReference/API_AlarmConfiguration.html)对象中。

有关更多信息，请参阅 [使用 CloudWatch 警报监控部署 CodeDeploy](monitoring-create-alarms.md)。



**自动回滚**：您可以对部署组或部署进行配置，使之在部署失败或达到您指定的监控阈值时自动回滚。在这种情况下，将会部署上一个已知良好的应用程序版本。您可以在使用控制台创建应用程序、创建部署组或更新部署组时配置部署组的可选设置。创建新部署时，您还可以选择覆盖已为部署组指定的自动回滚配置。
+ 您可通过选择下面一个或两个选项，允许部署在发生错误时回滚到已知正常的最近修订：
  + **部署失败时回滚**。 CodeDeploy 会将上次已知良好的修订版重新部署为新部署。
  + **Roll back when alarm thresholds are met**。如果您在上一步中向此应用程序添加了警报，则 CodeDeploy 将在激活一个或多个指定警报时重新部署最后一个已知良好的版本。
**注意**  
要暂时忽略回滚配置，请选择 **Disable rollbacks**。当您希望暂时禁止自动回滚而无需稍后重新设置相同配置时，此选项很有用。

  有关更多信息，请参阅 [使用重新部署和回滚部署 CodeDeploy](deployments-rollback-and-redeploy.md)。

**自动更新过期实例**：在某些情况下， CodeDeploy 可能会将应用程序的过时版本部署到您的 Amazon EC2 实例。例如，如果您的 EC2 实例在 CodeDeploy 部署过程中启动到 Auto Scaling 组 (ASG)，则这些实例将收到您的应用程序的旧版本，而不是最新版本。要使这些实例保持最新状态，请 CodeDeploy 自动启动后续部署（在第一次部署之后立即启动）以更新所有过时的实例。如果您想更改此默认行为，以便将过时的 EC2 实例保留在较旧的版本中，则可以通过 CodeDeploy API 或 AWS Command Line Interface (CLI) 进行更改。

要通过 API 配置过期实例的自动更新，请在 `UpdateDeploymentGroup` 或 `CreateDeploymentGroup` 操作中包含 `outdatedInstancesStrategy` 请求参数。有关详细信息，请参阅《AWS CodeDeploy API 参考》**。

要通过配置自动更新 AWS CLI，请使用以下命令之一：

`aws deploy update-deployment-group arguments --outdated-instances-strategy UPDATE|IGNORE`

或...

`aws deploy create-deployment-group arguments --outdated-instances-strategy UPDATE|IGNORE`

... w *arguments* here 替换为部署所需的参数，替换*UPDATE\$1IGNORE*`UPDATE`为启用自动更新或禁`IGNORE`用自动更新。

示例：

`aws deploy update-deployment-group --application-name "MyApp" --current-deployment-group-name "MyDG" --region us-east-1 --outdated-instances-strategy IGNORE`

有关这些 AWS CLI 命令的详细信息，请参阅《*AWS CLI 命令参考*》。

# 使用删除部署组 CodeDeploy
<a name="deployment-groups-delete"></a>

您可以使用 CodeDeploy 控制台 AWS CLI、或 CodeDeploy APIs 来删除与您的 AWS 账户关联的部署组。

**警告**  
如果您删除某个部署组，则与该部署组关联的所有详细信息也将从中删除 CodeDeploy。部署组中使用的实例将保持不变。并且无法撤消。

**Topics**
+ [

## 删除部署组（控制台）
](#deployment-groups-delete-console)
+ [

## 删除部署组（CLI）
](#deployment-groups-delete-cli)

## 删除部署组（控制台）
<a name="deployment-groups-delete-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. 在导航窗格中，展开**部署**，然后选择**应用程序**。

1. 在应用程序列表中，选择与部署组关联的应用程序的名称。

1. 在 **Application details（应用程序详细信息）**页面的 **Deployment groups（部署组）**选项卡上，选择要删除的部署组的名称。

1. 在 **Deployment details（部署详细信息）**页面上，选择 **Delete（删除）**。

1. 在系统提示时，键入部署组的名称以确认要删除此部署组，然后选择 **Delete**。

## 删除部署组（CLI）
<a name="deployment-groups-delete-cli"></a>

要使用删除部署组，请调用[delete-deployment-group](https://docs.aws.amazon.com/cli/latest/reference/deploy/delete-deployment-group.html)命令，指定： AWS CLI 
+ 与部署组关联的应用程序的名称。要查看应用程序名称的列表，请调用 [list-applications](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-applications.html) 命令。
+ 与应用程序关联的部署组的名称。要查看部署组名称的列表，请调用 [list-deployment-groups](https://docs.aws.amazon.com/cli/latest/reference/deploy/list-deployment-groups.html) 命令。