使用自动化规则

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

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

可用的自动化规则

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

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

下一个目标的发布

advanceRollout 自动从指定的

阶段进入下一阶段。

配置自动化规则

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

以下部分介绍了各个自动化规则的专用配置。如需了解自动化操作本身的配置,请参阅实现部署自动化

配置 promoteRelease 自动化规则

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

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

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

rules:
- promoteRelease:
    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.target 属性中指定的目标之后的下一个目标。如果您省略 destinationTargetId 的值,这就是默认值。

  • [TO_PHASE]

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

配置 advanceRollout 自动化规则

在成功完成一个阶段后,advanceRollout 规则会自动将发布推进到下一阶段。此自动化规则对于 Canary 部署非常有用。例如,如果您针对目标配置了 Canary 部署策略,其阶段为 25%50%stable,则可以配置一条自动化规则,在 50% 阶段结束后自动将阶段推进到 stable

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

rules:
- advanceRollout:
    name: "[RULE]"
    sourcePhases: ["[START_PHASE]", "[START_PHASE]"...]
    wait: [WAIT_TIME]

其中:

  • [RULE]

    是您要为此规则指定的任何名称。此名称在交付流水线中必须是唯一的。

  • [WAIT_TIME]

    是发布准备就绪后等待发布的时间(以分钟为单位)。例如 1mm 是必须的。

    默认值为 0,表示无等待时间。最长为 20160m(或 14 天)。

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

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

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

后续步骤