在 CodeDeploy 中使用部署配置 - Amazon CodeDeploy
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

在 CodeDeploy 中使用部署配置

部署配置是 CodeDeploy 期间使用的一组规则以及成功条件和失败条件。根据您是部署到 EC2/本地计算平台上的计算平台/本地计算平台上的计算平台上的计算平台和条件不同AmazonLambda 计算平台,或者亚马逊云服务器计算平台。

EC2/本地计算平台上的部署配置

通过使用最少正常运行的主机数值,部署配置会通过使用最少正常运行的主机数值,来指定在部署过程中的任意时候保持可用的实例数或实例百分比。

您可以使用由 Amazon 提供的三种预定义的部署配置之一,也可以创建自定义部署配置。有关创建自定义部署配置的更多信息,请参阅。Create a Deployment Configuration。如果您未指定部署配置,CodeDeployDefault.OneAtATime 部署配置将使用 CodeDeployDefault.OneAtATime 部署配置。

有关 CodeDeploy 如何在部署期间监控和评估实例运行状况的信息,请参阅。Instance Health。要查看已注册到 Amazon 账户的部署配置列表,请参阅View Deployment Configuration Details

EC2/本地计算平台的预定义部署配置

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

部署配置 描述
CodeDeployDefault.AllAtOnce

就地部署

一次性尝试将应用程序修订部署到尽可能多的实例。如果将应用程序修订部署到一个或多个实例,则整个部署的状态将显示为成功。如果尚未向任何实例部署应用程序修订,则整个部署的状态将显示为失败。在包含 9 个实例的示例中,CodeDeployDefault.AllAtOnce 将尝试一次性部署到所有 9 个实例。如果部署到单个实例成功,则整体部署成功。仅当所有 9 个实例的部署失败时,它才会失败。

蓝/绿部署

  • 部署到替换环境:遵循的部署规则与适用于就地部署的 CodeDeployDefault.AllAtOnce 相同。

  • 流量重新路由:将流量一次路由到替换环境的所有实例中。如果流量成功地重新路由到至少一个实例,则部署成功。如果重新路由到所有实例失败,则部署失败。

CodeDeployDefault.HalfAtATime

就地部署

一次最多可部署到一半实例(小数向下取整)。如果将应用程序修订部署到至少一半实例(小数向下取整),则整个部署成功。否则,部署失败。在包含 9 个实例的示例中,一次部署到最多 4 个实例。如果成功部署到 5 个或更多实例,则整个部署成功。否则,部署失败。

蓝/绿部署

  • 部署到替换环境:遵循的部署规则与适用于就地部署的 CodeDeployDefault.HalfAtATime 相同。

  • 流量重新路由:每次将流量路由到替换环境的最多半数实例中。如果成功地重新路由到至少半数实例,则部署成功。否则, 失败。

CodeDeployDefault.OneAtATime

就地部署

一次仅将应用程序修订部署到一个实例。

对于包含多个实例的部署组:

  • 如果已将应用程序修订部署到所有实例,则整个部署成功。此规则的例外情况是,如果无法部署到最后一个实例,则整个部署仍将成功。这是因为,CodeDeployDefault.OneAtATime 配置一次只允许使一个实例脱机。

  • 一旦应用程序修订无法部署到任何实例(但最后一个实例除外),整个部署将失败。

  • 在使用 9 个实例的示例中,将一次部署到一个实例。如果部署到前 8 个实例成功,则整体部署成功。如果部署到前 8 个实例中的任何一个实例失败,则整体部署失败。

对于仅包含一个实例的部署组,整个部署仅在成功部署到单个实例时成功.

蓝/绿部署

  • 部署到替换环境:遵循的部署规则与适用于就地部署的 CodeDeployDefault.OneAtATime 相同。

  • 流量重新路由:每次将流量路由到替换环境的一个实例中。如果流量成功地重新路由到所有替换实例,则部署成功。在第一次重新路由失败后,部署失败。此规则的例外情况是,如果最后一个实例无法注册,则整个部署仍将成功。

Amazon ECS 计算平台上的部署配置

当您部署到 Amazon ECS 计算平台时,部署配置会指定如何将流量转移到更新后的 Amazon ECS 任务集。

在部署过程中,有三种可转移流量的方法:

  • Canary:流量在两次增量中转移。您可以从预定义的金丝雀部署选项中选择,这些选项指定在第一次增量中转移到更新后的 Amazon ECS 任务集的流量百分比以及以分钟为单位的间隔;然后指定在第二次增量中转移剩余的流量。

  • 线性:流量使用相等的增量转移,在每次递增之间间隔的分钟数相同。您可以从预定义的线性选项中进行选择,这些选项指定在每次增量中转移的流量百分比以及每次增量之间的分钟数。

  • 一次性:所有流量均从原始 Amazon ECS 任务集一次性地转移到更新后的 Amazon ECS 任务集。

您也可以创建自定义 Canary 部署或线性部署配置。有关更多信息,请参阅 Create a Deployment Configuration

Amazon ECS 计算平台的预定义部署配置

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

部署配置 描述

CodeDeployDefault.ECSLinear10PercentEvery1Minutes

每分钟转移 10% 的流量,直到所有流量转移完毕。

CodeDeployDefault.ECSLinear10PercentEvery3Minutes

每隔 3 分钟转移 10% 的流量,直到所有流量转移完毕。

CodeDeployDefault.ECSCanary10Percent5Minutes

在第一次增量中转移 10% 的流量。其余 90% 部署在五分钟后进行转移。

CodeDeployDefault.ECSCanary10Percent15Minutes

在第一次增量中转移 10% 的流量。其余 90% 部署在 15 分钟后进行转移。

CodeDeployDefault.ECSAllAtOnce

所有流量一次性转移到更新后的 Amazon ECS 容器。

部署配置Amazon CloudFormation蓝/绿部署(Amazon ECS)

当您部署到 Amazon ECS 计算平台时,通过Amazon CloudFormation蓝/绿部署,部署配置将指定如何将流量转移到更新后的 Amazon ECS 容器。

Amazon ECS 蓝/绿部署期间可通过以下三种方式进行转移:Amazon CloudFormation:

  • Canary:流量在两次增量中转移。您可以选择一个预定义的金丝雀部署选项,该选项指定在第一次增量中转移到更新后的 Amazon ECS 任务集的流量百分比以及以分钟为单位的间隔;然后指定在第二次增量中转移剩余的流量。

  • 线性:流量使用相等的增量转移,在每次递增之间间隔的分钟数相同。您可以指定在每次增量中转移的流量百分比以及每次增量之间的分钟数。

  • 一次性:所有流量均从原始 Amazon ECS 任务集一次性地转移到更新后的 Amazon ECS 任务集。

对于此部署配置,您无法创建自己的自定义 Canary 或线性部署配置。有关使用的分步指导,Amazon CloudFormation以管理您的 Amazon ECS 蓝/绿部署,请参阅。通过 CodeDeploy 实现 ECS 蓝/绿部署Amazon CloudFormation中的Amazon CloudFormation用户指南

注意

使用管理 Amazon ECS 蓝/绿部署Amazon CloudFormation在墨西哥 XP、CPT、KIX 或 BJS/ZHY 区域中不可用。

上的部署配置Amazon Lambda计算平台

当您部署到AmazonLambda 计算平台,部署配置将指定流量转移到您应用程序中的新 Lambda 函数版本的方式。

在部署过程中,有三种可转移流量的方法:

  • Canary:流量在两次增量中转移。您可以从预定义的金丝雀部署选项中选择,这些选项指定在第一次增量中转移到更新后的 Lambda 函数版本的流量百分比以及以分钟为单位的间隔;然后指定在第二次增量中转移剩余的流量。

  • 线性:流量使用相等的增量转移,在每次递增之间间隔的分钟数相同。您可以从预定义的线性选项中进行选择,这些选项指定在每次增量中转移的流量百分比以及每次增量之间的分钟数。

  • 一次性:所有流量均从原始 Lambda 函数一次性地转移到更新后的 Lambda 函数版本。

您也可以创建自定义 Canary 部署或线性部署配置。有关更多信息,请参阅 Create a Deployment Configuration

预定义的部署配置Amazon Lambda计算平台

下表列出了可用于 Amazon 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 函数。

主题