REST Resource: projects.locations.deliveryPipelines.automations

资源:Automation

Cloud Deploy API 中的 Automation 资源。

Automation 支持自动为交付流水线执行手动驱动的操作,包括目标之间的版本提升、发布修复和发布部署策略推进。Automation 功能旨在减少持续交付流程中的人工干预。

JSON 表示法
{
  "name": string,
  "uid": string,
  "description": string,
  "createTime": string,
  "updateTime": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "etag": string,
  "suspended": boolean,
  "serviceAccount": string,
  "selector": {
    object (AutomationResourceSelector)
  },
  "rules": [
    {
      object (AutomationRule)
    }
  ]
}
字段
name

string

仅限输出。Automation 的名称。格式为 projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/automations/{automation}

uid

string

仅限输出。Automation 的唯一标识符。

description

string

可选。Automation 的说明。长度上限为 255 个字符。

createTime

string (Timestamp format)

仅限输出。自动化操作的创建时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

updateTime

string (Timestamp format)

仅限输出。自动化操作的更新时间。

时间戳采用 RFC3339 世界协调时间(UTC,即“祖鲁时”)格式,精确到纳秒,最多九个小数位。示例:"2014-10-02T15:01:23Z""2014-10-02T15:01:23.045123456Z"

annotations

map (key: string, value: string)

可选。用户注释。这些属性只能由用户设置和使用,而不能由 Cloud Deploy 设置和使用。注解必须满足以下限制条件:

  • 注解是键值对。
  • 有效的注解键包含两个段:可选的前缀和名称,用正斜线 (/) 分隔。
  • 名称段是必填字段,且不得超过 63 个字符,以字母数字字符 ([a-z0-9A-Z]) 开头和结尾,中间可以有短划线 (-)、下划线 (_)、英文句点 (.) 和字母数字字符。
  • 前缀是可选的。如果指定前缀,该前缀必须是 DNS 子网域:一系列以英文句点(.) 分隔的 DNS 标签,总长度不超过 253 个字符,后跟斜杠 (/)。

如需了解详情,请参阅 https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/#syntax-and-character-set

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

labels

map (key: string, value: string)

可选。标签是用户可以和 Cloud Deploy 设置和使用的属性。标签必须符合以下限制条件:

  • 键和值只能包含小写字母、数字字符、下划线和短划线。
  • 所有字符都必须使用 UTF-8 编码,允许使用国际字符。
  • 键必须以小写字母或国际字符开头。
  • 每项资源最多只能包含 64 个标签。

另外,键和值均不得超过 63 个字符。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

etag

string

可选。Automation 资源的弱 etag。该校验和由服务器根据其他字段的值计算,并且可能会在更新和删除请求时发送,以确保客户端在继续操作之前具有最新的值。

suspended

boolean

可选。暂停后,自动化功能将被停用,无法执行。

serviceAccount

string

必需。用于创建 Cloud Deploy 版本和发布资源的用户管理的 IAM 服务帐号的电子邮件地址。

selector

object (AutomationResourceSelector)

必需。选择应用自动化操作的资源。

rules[]

object (AutomationRule)

必需。与 Automation 资源相关联的 Automation 规则的列表。必须有至少 1 条规则,并且每个交付渠道最多只能包含 250 条规则。注意:此处的规则顺序与执行顺序不同。

AutomationResourceSelector

AutomationResourceSelector 包含用于选择要应用自动化操作的资源的信息。

JSON 表示法
{
  "targets": [
    {
      object (TargetAttribute)
    }
  ]
}
字段
targets[]

object (TargetAttribute)

包含目标的相关属性。

TargetAttribute

包含选择目标的条件。

JSON 表示法
{
  "id": string,
  "labels": {
    string: string,
    ...
  }
}
字段
id

string

Target 的 ID。此字段的值可以是以下值之一:* 目标名称的最后一段。它只需使用该 ID 即可确定某个地理位置中的所有定位条件被 *“*”所指代的是哪个定位条件。

labels

map (key: string, value: string)

目标标签。

包含一系列 "key": value 对的对象。示例:{ "name": "wrench", "mass": "1.3kg", "count": "3" }

AutomationRule

AutomationRule 定义了自动化 activity。

JSON 表示法
{

  // Union field rule can be only one of the following:
  "promoteReleaseRule": {
    object (PromoteReleaseRule)
  },
  "advanceRolloutRule": {
    object (AdvanceRolloutRule)
  },
  "repairRolloutRule": {
    object (RepairRolloutRule)
  }
  // End of list of possible types for union field rule.
}
字段
联合字段 rule。Automation 规则的配置。rule 只能是下列其中一项:
promoteReleaseRule

object (PromoteReleaseRule)

可选。PromoteReleaseRule 会自动将版本从当前目标提升到指定目标。

advanceRolloutRule

object (AdvanceRolloutRule)

可选。AdvanceRolloutRule 会自动推进成功的发布。

repairRolloutRule

object (RepairRolloutRule)

可选。RepairRolloutRule 会自动修复失败的发布。

PromoteReleaseRule

PromoteRelease 规则会自动将版本从当前目标提升到指定目标。

JSON 表示法
{
  "id": string,
  "wait": string,
  "destinationTargetId": string,
  "condition": {
    object (AutomationRuleCondition)
  },
  "destinationPhase": string
}
字段
id

string

必需。规则的 ID。此 ID 在此规则所属的 Automation 资源中必须是唯一的。格式为 [a-z]([a-z0-9-]{0,61}[a-z0-9])?

wait

string (Duration format)

可选。发布版本需要暂停多长时间才能提升到下一个目标。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

destinationTargetId

string

可选。此 Release 要部署到的流水线中的阶段的 ID。如果未指定,则默认为推广流程的下一阶段。此字段的值可以是以下值之一:

  • 目标名称的最后一部分。它只需使用该 ID 即可确定目标是否为流水线中定义的提升序列中的阶段之一。
  • “@next”,升级序列中的下一个目标。
condition

object (AutomationRuleCondition)

仅限输出。有关 Automation 规则状态的信息。

destinationPhase

string

可选。此操作创建的发布流程的起始阶段。默认为第一阶段。

AutomationRuleCondition

AutomationRuleCondition 包含与 Automation 规则相关的条件。

JSON 表示法
{
  "targetsPresentCondition": {
    object (TargetsPresentCondition)
  }
}
字段
targetsPresentCondition

object (TargetsPresentCondition)

可选。有关规则中枚举的目标的详细信息。

AdvanceRolloutRule

rollouts.advance 自动化规则会自动将成功完成的发布推进到下一阶段。

JSON 表示法
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "wait": string,
  "condition": {
    object (AutomationRuleCondition)
  }
}
字段
id

string

必需。规则的 ID。此 ID 在此规则所属的 Automation 资源中必须是唯一的。格式为 [a-z]([a-z0-9-]{0,61}[a-z0-9])?

sourcePhases[]

string

可选。仅在阶段名称与列表中的任何一个匹配后继续。此值必须由小写字母、数字和连字符组成,以字母开头,以字母或数字结尾,长度上限为 63 个字符。换句话说,它必须与以下正则表达式匹配:^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

wait

string (Duration format)

可选。发布完成后的等待时间。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

condition

object (AutomationRuleCondition)

仅限输出。有关 Automation 规则状态的信息。

RepairRolloutRule

RepairRolloutRule 自动化规则将自动修复失败的Rollout

JSON 表示法
{
  "id": string,
  "sourcePhases": [
    string
  ],
  "jobs": [
    string
  ],
  "repairModes": [
    {
      object (RepairMode)
    }
  ],
  "condition": {
    object (AutomationRuleCondition)
  }
}
字段
id

string

必需。规则的 ID。此 ID 在此规则所属的 Automation 资源中必须是唯一的。格式为 [a-z]([a-z0-9-]{0,61}[a-z0-9])?

sourcePhases[]

string

可选。在此阶段,作业中会出现故障时自动修复操作。仅在阶段名称与列表中的任何一个匹配后继续执行操作;如果未指定,则针对所有阶段继续操作。此值必须由小写字母、数字和连字符组成,以字母开头,以字母或数字结尾,长度上限为 63 个字符。换句话说,它必须与以下正则表达式匹配:^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

jobs[]

string

可选。要修复的作业。仅当作业名称与列表中的任一项匹配后才继续执行操作;如果未指定或为空,则针对所有作业继续操作。包含该作业的阶段必须与 sourcePhase 中指定的阶段 ID 一致。此值必须由小写字母、数字和连字符组成,以字母开头,以字母或数字结尾,长度上限为 63 个字符。换句话说,它必须与以下正则表达式匹配:^[a-z]([a-z0-9-]{0,61}[a-z0-9])?$

repairModes[]

object (RepairMode)

必需。定义失败作业的自动修复操作类型。

condition

object (AutomationRuleCondition)

仅限输出。有关“Automation”规则状态的信息。

RepairMode

修复操作的配置。

JSON 表示法
{

  // Union field mode can be only one of the following:
  "retry": {
    object (Retry)
  },
  "rollback": {
    object (Rollback)
  }
  // End of list of possible types for union field mode.
}
字段
联合字段 mode。要执行的修复操作。mode 只能是下列其中一项:
retry

object (Retry)

可选。重试失败的作业。

rollback

object (Rollback)

可选。回滚 Rollout

重试

重试失败的作业。

JSON 表示法
{
  "attempts": string,
  "wait": string,
  "backoffMode": enum (BackoffMode)
}
字段
attempts

string (int64 format)

必需。重试总次数。如果设置为 0,则会跳过重试;最小值为 1,最大值为 10。

wait

string (Duration format)

可选。等待第一次重试的时间。默认值为 0,最大值为 14 天。

该时长以秒为单位,最多包含九个小数位,以“s”结尾。示例:"3.5s"

backoffMode

enum (BackoffMode)

可选。等待时间增加的模式。默认值为“线性”。如果 wait 为 0,系统会忽略退避模式。

回滚

回滚 Rollout

JSON 表示法
{
  "destinationPhase": string
}
字段
destinationPhase

string

可选。Rollout 的起始阶段 ID。如果未指定,Rollout 将以稳定阶段启动。

方法

create

在指定项目和位置中创建新的 Automation。

delete

删除单个 Automation 操作资源。

get

获取单个 Automation 的详细信息。

list

列出给定项目和位置中的自动化操作。

patch

更新单个 Automation 资源的参数。