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

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

使用 CodeDeploy 创建部署配置

如果您不希望使用 CodeDeploy 提供的任一默认部署配置,可按照以下说明创建自己的配置。

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

有关使用 Amazon CloudFormation 模板创建部署配置的信息,请参阅 Amazon CloudFormation供 CodeDeploy参考的模板

创建部署配置(控制台)

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

使用控制台在 CodeDeploy 中创建部署配置
  1. 登录 Amazon Web Services Management Console并打开 CodeDeploy 控制台,网址为 https://console.aws.amazon.com/codedeploy

    注意

    使用您在CodeDeploy 入门中设置的同一用户登录。

  2. 在导航窗格中,选择部署配置

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

  3. 选择创建部署配置

  4. 部署配置名称中,输入部署配置的名称。例如,my-deployment-config

  5. 计算平台下,选择以下选项之一:

    • EC2/本地

    • Amazon Lambda

    • Amazon ECS

  6. 请执行以下操作之一:

    • 如果您选择了 EC2/本地

      1. 正常运行的最少主机数下,指定在部署期间任何时候都必须保持可用的实例的数量或百分比。有关部署期间 CodeDeploy 如何监控和评估实例运行状况的更多信息,请参阅Instance Health

      2. (可选)在区域配置下,选择启用区域配置,让 CodeDeploy 将您的应用程序一次部署到 Amazon 区域内的一个可用区。一次部署到一个可用区后,随着您对部署性能和可行性的信心逐渐增强,就可以向越来越多的受众展示自己的部署。如果您未启用区域配置,CodeDeploy 会将您的应用程序部署到某个区域中随机选择的主机上。

        如果您启用了区域配置功能,请注意以下事项:

        • 只有对 Amazon EC2 实例的就地部署才支持区域配置功能。(不支持蓝绿部署和本地实例。) 有关就地部署的更多信息,请参阅Deployment type (部署类型)

        • 预定义的部署配置不支持区域配置功能。要使用区域配置,必须按此处所述创建自定义部署配置。

        • 如果 CodeDeploy 需要回滚部署,CodeDeploy 将在随机主机上执行回滚操作。(CodeDeploy 不会像您期望的那样一次回滚一个区域。) 之所以选择这种回滚行为,是出于性能方面的考虑。有关回滚的更多信息,请参阅使用 CodeDeploy 重新部署和回滚部署

      3. 如果选中了启用区域配置复选框,可以选择指定以下选项:

        • (可选)在监控持续时间中,指定 CodeDeploy 在完成对可用区的部署后必须等待的时间段(以秒为单位)。CodeDeploy 将在开始部署到下一个可用区之前等待这段时间。请考虑添加监控持续时间,以便让部署在下一个可用区内发布之前,有时间在一个可用区中证明自己(或“烘焙”)。如果您未指定监控持续时间,CodeDeploy 会立即开始部署到下一个可用区。有关监控持续时间设置如何发挥作用的更多信息,请参阅 关于每个可用区最小运行正常的实例数

        • (可选)选择为第一个区域添加监控持续时间以设置仅适用于第一个可用区的监控持续时间。如果您想为第一个可用区留出额外的烘焙时间,可以设置此选项。如果您未在添加第一个区域监控持续时间中指定值,CodeDeploy 将为第一个可用区使用监控持续时间值。

        • (可选)在每个区域正常运行的最少主机数下,指定在部署期间每个可用区必须保持可用的实例的数量或百分比。选择 FLEET_PERCENT 以指定一个百分比,或选择 HOST_COUNT 以指定一个数字。此字段将与正常运行的最少主机数字段共同发挥作用。有关更多信息,请参阅关于每个可用区最小运行正常的实例数

          如果您未在每个区域正常运行的最少主机数下指定值,CodeDeploy 将使用默认值 0%。

    • 如果您选择了 Amazon LambdaAmazon ECS

      1. 对于类型,请选择线性金丝雀

      2. 分步间隔字段中,执行以下任一操作:

        • 如果您选择了金丝雀,请为分步输入要转移的流量百分比,介于 1 和 99 之间。这是在第一次递增中转移的流量百分比。剩余的流量将在选定的时间间隔后在第二次递增中转移。

          对于间隔,请输入第一次和第二次流量转移之间的分钟数。

        • 如果您选择了线性,请为分步输入要转移的流量百分比,介于 1 和 99 之间。这是在每个间隔开始时转移的流量百分比。

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

  7. 选择创建部署配置

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

使用 CodeDeploy 创建部署配置(Amazon CLI)

要使用 Amazon CLI 创建部署配置,请调用 create-deployment-config 命令。

以下示例创建了一个名为 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}}'

以下示例创建了一个名为 Canary25Percent45Minutes 的 Amazon Lambda 部署配置。它使用 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