

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

# 使用创建应用程序 CodeDeploy
<a name="applications-create"></a>

*应用程序*只是一个名称或容器，用于 CodeDeploy 确保在部署期间引用正确的修订版、部署配置和部署组。您可以使用 CodeDeploy 控制台、 AWS CLI CodeDeploy APIs、或 CloudFormation 模板来创建应用程序。

您的代码或应用程序修订通过称为部署的过程安装到实例中。 CodeDeploy 支持两种类型的部署：
+ **就地部署**：停止部署组中每个实例上的应用程序，安装最新的应用程序修订，然后启动和验证应用程序的新版本。您可以使用负载均衡器，以便在部署期间取消注册每个实例，然后在部署完成后让其重新提供服务。只有使用 EC2/本地计算平台的部署才能使用就地部署。有关就地部署的更多信息，请参阅[就地部署概述](welcome.md#welcome-deployment-overview-in-place)。
+ **蓝绿部署**：部署的行为取决于使用的计算平台：
  + **Blue/green on an EC2/On-本地计算平台**：使用以下步骤将部署组（原始环境）中的实例替换为另一组实例（替换环境）：
    + 为替换环境配置实例。
    + 在替换实例上安装最新的应用程序修订。
    + 对于应用程序测试和系统验证等活动，可以选择等待时间。
    + 替换环境中的实例在一个或多个 Elastic Load Balancing 负载均衡器中注册，从而导致流量被重新路由到这些负载均衡器。原始环境中的实例已注销，可以终止或继续运行以用于其他用途。
**注意**  
如果您使用 EC2/本地计算平台，请注意 blue/green 部署仅适用于 Amazon EC2 实例。
  + 或 ** AWS Lambda Amazon ECS 计算平台上的蓝/绿**：流量根据**金丝雀**、**线性**或**all-at-once**部署配置逐渐移动。
  + **蓝/绿部署通过 CloudFormation**：作为 CloudFormation 堆栈更新的一部分，流量将从您当前的资源转移到更新的资源。当前，仅支持 ECS blue/green 部署。

  有关 blue/green 部署的更多信息，请参阅[blue/green 部署概述](welcome.md#welcome-deployment-overview-blue-green)。

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

要查看已注册到您的 AWS 账户的应用程序列表，请参阅[使用查看应用程序详情 CodeDeploy](applications-view-details.md)。有关使用 CloudFormation 模板创建应用程序的信息，请参阅[CloudFormation 模板供 CodeDeploy 参考](reference-cloudformation-templates.md)。

 这两个部署类型不适用于所有目标。下表列出了哪些部署类型与到三种部署目标类型的部署一起使用。


****  

| 部署目标 | 就地 | 蓝/绿 | 
| --- | --- | --- | 
| Amazon EC2  | 支持 | 是 | 
| 本地 | 是 | 否 | 
| 无服务器 Lamb AWS da 函数 | 否 | 是 | 
| Amazon ECS 应用程序 | 否 | 是 | 



**Topics**
+ [为就地部署创建应用程序（控制台）](applications-create-in-place.md)
+ [为 blue/green 部署创建应用程序（控制台）](applications-create-blue-green.md)
+ [为 Amazon ECS 服务部署创建应用程序（控制台）](applications-create-ecs.md)
+ [为 AWS Lambda 函数部署创建应用程序（控制台）](applications-create-lambda.md)
+ [创建应用程序（CLI）](applications-create-cli.md)

# 为就地部署创建应用程序（控制台）
<a name="applications-create-in-place"></a>

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

 

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

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

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

1. 在导航窗格中，展开 **Deploy（部署）**，然后选择 **Getting started（开始使用）**。

1. 选择**创建应用程序**。

1. 在 **Application name（应用程序名称）**中，输入您的应用程序的名称。

1. 从 **Compute Platform（计算平台）**中，选择 **EC2/On-premises（EC2/本地）**。

1. 选择**创建应用程序**。

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

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

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

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

1. 在 **Environment configuration（环境配置）**中，选择以下任一项：

   1. **Amazon EC2 Auto Scaling 组**：输入或选择要向其部署应用程序修订的 Amazon EC2 Auto Scaling 组的名称。当新的 Amazon EC2 实例作为 Amazon EC2 Auto Scaling 组的一部分启动时， CodeDeploy 可以自动将您的修订部署到新实例。您最多可以将 10 个 Amazon EC2 Auto Scaling 组添加到一个部署组。

   1. **Amazon EC2 实例**或**本地实例**：在**键**和**值**字段中，输入用于标记实例的键值对的值。一个标签组中最多可标记 10 对键值对。

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

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

      1. 要从列表中删除键值对，请选择 **Remove tag（删除图标）**。

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

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

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

1. 在 **Deployment settings（部署设置）**中，选择一个部署配置以控制将应用程序部署到实例的速率，如一次部署一个或一次全部部署。有关部署配置的更多信息，请参阅[在中使用部署配置 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)。

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

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

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

下一步是准备要部署到应用程序和部署组的修订。有关说明，请参阅[正在处理的应用程序修订版 CodeDeploy](application-revisions.md)。

# 为 blue/green 部署创建应用程序（控制台）
<a name="applications-create-blue-green"></a>

要使用 CodeDeploy 控制台为 blue/green 部署创建应用程序，请执行以下操作：

**注意**  
部署到 AWS Lambda 计算平台始终是一种 blue/green 部署。您不需要指定部署类型选项。

**警告**  
以下情况下请勿按照这些步骤操作：  
在 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. 在导航窗格中，展开 **Deploy（部署）**，然后选择 **Getting started（开始使用）**。

1. 在 **Application name（应用程序名称）**中，输入您的应用程序的名称。

1. 从 **Compute platform（计算平台）**中，选择 **EC2/On-Premises（EC2/本地）**。

1. 选择**创建应用程序**。

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. 在 **Environment configuration** 中，选择为替换环境提供实例的方法：

   1. **自动复制 Amazon EC2 Auto Scaling 群组**：通过复制您指定的群组来 CodeDeploy 创建一个 Amazon EC2 Auto Scaling 群组。

   1. **Manually provision instances**：在创建部署前，您不会为替换环境指定实例。您必须在启动部署前创建实例。您应于此处指定要替换的实例。

1. 根据您在步骤 10 中的选择，请执行以下操作之一：
   + 如果您选择了**自动复制 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 实例**，以指定要添加到此部署组的实例。输入 Amazon EC2 标签值或 Amazon EC2 Auto Scaling 组名称以标识原始环境中的实例（即，您要替换的实例或正在运行当前应用程序修订的实例）。

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

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

   有关用于 CodeDeploy 部署的负载均衡器的更多信息，请参阅[CodeDeploy 与 Elastic Load Balancing](integrations-aws-elastic-load-balancing.md)。

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

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

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

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

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

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

下一步是准备要部署到应用程序和部署组的修订。有关说明，请参阅[正在处理的应用程序修订版 CodeDeploy](application-revisions.md)。

# 为 Amazon ECS 服务部署创建应用程序（控制台）
<a name="applications-create-ecs"></a>

 您可以使用 CodeDeploy 控制台为 Amazon ECS 服务部署创建应用程序。

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

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

1. 在**创建应用程序**页面上，选择**使用 CodeDeploy**。

1. 在 **Application name（应用程序名称）**中，输入您的应用程序的名称。

1. 在**计算平台**中，选择 **Amazon ECS**。

1. 选择**创建应用程序**。

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)。

# 为 AWS Lambda 函数部署创建应用程序（控制台）
<a name="applications-create-lambda"></a>

您可以使用 CodeDeploy 控制台为 AWS Lambda 函数部署创建应用程序。

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

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

1. 在**创建应用程序**页面上，选择**使用 CodeDeploy**。

1. 在 **Application name（应用程序名称）**中输入您的应用程序的名称。

1. 从 **Compute platform（计算平台）**中，选择 **AWS Lambda**。

1. 选择**创建应用程序**。

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

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

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

1.  如果您要使用预定义的部署配置，请从 **Deployment configuration（部署配置）**中选择一个然后跳至步骤 12。要创建自定义配置，请继续执行下一步。

   有关部署配置的更多信息，请参阅[AWS Lambda 计算平台上的部署配置](deployment-configurations.md#deployment-configuration-lambda)。

1. 要创建自定义配置，请选择 **Create deployment configuration（创建部署配置）**然后执行以下操作：

   1. 对于 **Deployment configuration name（部署配置名称）**，输入配置的名称。

   1. 从 **Type（类型）**中，选择配置类型。如果您选择 **Canary**，则流量将通过两次递增进行转移。如果您选择 **Linear**，则流量使用相等的递增转移，在每次递增之间的分钟数相同。

   1. 对于 **Step**，输入将要转移的流量百分比，介于 1 和 99 之间。如果您的配置类型是 **Canary**，则这是在第一次递增中转移的流量百分比。剩余的流量将在选定的时间间隔后在第二次递增中转移。如果您的配置类型是 **Linear**，则这是在每个间隔开始时转移的流量百分比。

   1. 在 **Interval（间隔）**中，输入分钟数。如果您的配置类型是 **Canary**，则这是第一次和第二次流量转移之间间隔的分钟数。如果您的配置类型是 **Linear（线性）**，则这是每次增量流量转移之间间隔的分钟数。
**注意**  
一次 AWS Lambda 部署的最大时长为两天，即 2,880 分钟。因此，为 Canary 配置的 **Interval** 指定的最大值为 2,800 分钟。线性配置的最大值取决于 **Step** 的值。例如，如果线性流量转移的步长百分比是 25%，则有四次流量转移。最大时间间隔值是 2,880 除以 4，即 720 分钟。

   1. 选择 **Create deployment configuration（创建部署配置）**。

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

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

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

# 创建应用程序（CLI）
<a name="applications-create-cli"></a>

要使用创建应用程序，请调用 [create-application 命令，指定一个唯一代表该应用程序](https://docs.aws.amazon.com/cli/latest/reference/deploy/create-application.html)的名称。 AWS CLI （在一个 AWS 账户中，每个区域只能使用一次 CodeDeploy 应用程序名称。 您可以在不同的区域重复使用应用程序名称。）

使用创建应用程序后，下一步是创建一个部署组，指定要向其部署修订的实例。 AWS CLI 有关说明，请参阅[使用创建部署组 CodeDeploy](deployment-groups-create.md)。

创建部署组后，下一步是准备要部署到应用程序和部署组的修订。有关说明，请参阅[正在处理的应用程序修订版 CodeDeploy](application-revisions.md)。