使用自动规则

本文档介绍了自动化规则,即可以执行的操作 自动部署您的交付流水线例如,您可以将 以便提升到特定目标 在适当的情况下自动管理。

您只能使用 Cloud Deploy 内置的自动化规则。 本文档中列出了可用的自动化规则。

可用的自动化规则

Cloud Deploy 中提供了以下自动化规则:

规则 说明
promoteReleaseRule 成功后自动将某个版本提升到指定的目标

上一个目标进行部署。

advanceRolloutRule 自动将发布从指定的

阶段推进到下一阶段。

配置自动化规则

每条自动化规则的配置取决于具体的规则。这个 部分介绍了所有规则共有的配置,以及 来配置每条可用规则

以下部分介绍了特定于各项自动化的配置 规则。请参阅自动部署 自动化操作本身的配置

配置 promoteReleaseRule 项自动化规则

promoteReleaseRule 规则会在版本成功发布后推广到 目标。例如,如果您有三个目标,则可以将此规则设置为: 版本成功部署到第一个目标后, 自动提升到第二个目标

配置 promoteReleaseRule 自动化操作时,您可以指定 要提升到 (destinationTargetId) 或 @next 的定位条件。发布新版本时 在 Automation 定义中指定的目标内成功完成, 版本随后会提升到 destinationTargetId 中指定的目标, (时间间隔为 wait 时)。

您还可以使用以下代码将版本提升到预期目标中的特定阶段 destinationPhase 属性。

rules:
- promoteReleaseRule:
    name: "[RULE_NAME]"
    wait: [WAIT_TIME]
    destinationTargetId: "[TO_TARGET]"
    destinationPhase: "[TO_PHASE]"

其中:

  • [RULE_NAME]

    您可以为此规则指定的任何名称。此名称在 自动化技术资源

  • [WAIT_TIME]

    是版本准备就绪后等待的时间(以分钟为单位) 促销前。例如 1mm 是必需的。

    默认值为 0 或无等待时间。最大值为 20160m(或 14 个) 天)。

  • [TO_TARGET]

    targetId 要提升到的目标。

    此属性也可以是 @next,用于将版本自动提升到下一个 此目标位于 selector.targets 属性中指定的目标之后, 自动化配置。如果您 省略 destinationTargetId 中的值。

  • [TO_PHASE]

    是要提升到的阶段的阶段名称,例如 canary-25stable。此属性是可选的;如果省略,则此发布 提升到目标的第一阶段。

配置 advanceRolloutRule 自动化规则

成功后,advanceRolloutRule 会自动推进您的发布 即用户完成了一个阶段之后才进入下一阶段这条自动化规则适用于 Canary 部署例如,如果您有一项 Canary 部署策略 阶段为 25%50%stable,则可以 配置一条自动化规则,自动将阶段推进到 stable50% 阶段结束后。

配置 advanceRolloutRule 自动化操作时,您需要确定阶段, 从 sourcePhase 推进。

rules:
- advanceRolloutRule:
    id: "[RULE]"
    sourcePhases: ["[START_PHASE]", "[START_PHASE]"...]
    wait: [WAIT_TIME]

其中:

  • [RULE]

    您可以为此规则指定的任何名称。此名称在 交付流水线

  • [WAIT_TIME]

    此时间是指在发布后等待多少分钟 准备就绪。例如 1mm 是必需的。

    默认值为 0 或无等待时间。最大值为 20160m(或 14 个) 天)。

  • ["[START_PHASE]", "[START_PHASE]"...]

    是指自动推进发布一个或多个阶段。 也就是说,当所列任何阶段成功完成时, 自动从该阶段推进到下一阶段。

    阶段名称区分大小写。此外,这些阶段名称是可选的;如果你 省略 sourcePhases,则发布中的所有阶段都会自动推进。

后续步骤