本文档介绍了自动化规则,即可以执行的操作 自动部署您的交付流水线例如,您可以将 以便提升到特定目标 在适当的情况下自动管理。
您只能使用 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]
是版本准备就绪后等待的时间(以分钟为单位) 促销前。例如
1m
。m
是必需的。默认值为
0
,即无等待时间。最大值为20160m
(或 14 个) 天)。[TO_TARGET]
是
targetId
要提升到的目标。此属性也可以是
@next
,用于将版本自动提升到下一个 此目标位于selector.targets
属性中指定的目标之后, 自动化配置。如果您 省略destinationTargetId
中的值。[TO_PHASE]
是要提升到的阶段的阶段名称,例如
canary-25
或stable
。此属性为可选属性;如果您省略此属性,则版本将提升到目标中的第一个阶段。
配置 advanceRolloutRule
自动化规则
成功后,advanceRolloutRule
会自动推进您的发布
即用户完成了一个阶段之后才进入下一阶段此自动化规则对 Canary 部署很有用。例如,如果您在目标上配置了 Canary 部署策略,其中包含 25%
、50%
和 stable
三个阶段,则可以配置一个自动化规则,以便在 50%
阶段结束后自动将阶段推进到 stable
。
配置 advanceRolloutRule
自动化操作时,您需要指定要从哪个阶段推进(即 sourcePhase
)。
rules:
- advanceRolloutRule:
id: "[RULE]"
sourcePhases: ["[START_PHASE]", "[START_PHASE]"...]
wait: [WAIT_TIME]
其中:
[RULE]
是您要为此规则指定的名称。此名称在交付流水线中必须是唯一的。
[WAIT_TIME]
在部署准备就绪后等待推进部署的时间(以分钟为单位)。例如
1m
。m
是必需的。默认值为
0
或无等待时间。最大值为20160m
(或 14 个) 天)。["[START_PHASE]", "[START_PHASE]"...]
是指自动推进发布的一个或多个阶段。 也就是说,当所列的任一阶段成功完成后,发布会会自动从该阶段推进到下一阶段。
阶段名称区分大小写。此外,这些阶段名称是可选的;如果您省略
sourcePhases
,发布中的所有阶段都会自动推进。
后续步骤
详细了解部署自动化: Cloud Deploy。