REST Resource: projects.locations.deliveryPipelines.releases.rollouts

资源:发布

Cloud Deploy API 中的 Rollout 资源。

Rollout 包含有关对 Target 的特定部署的信息。

JSON 表示法
{
  "name": string,
  "uid": string,
  "description": string,
  "annotations": {
    string: string,
    ...
  },
  "labels": {
    string: string,
    ...
  },
  "createTime": string,
  "approveTime": string,
  "enqueueTime": string,
  "deployStartTime": string,
  "deployEndTime": string,
  "targetId": string,
  "approvalState": enum (ApprovalState),
  "state": enum (State),
  "failureReason": string,
  "deployingBuild": string,
  "etag": string,
  "deployFailureCause": enum (FailureCause),
  "phases": [
    {
      object (Phase)
    }
  ],
  "metadata": {
    object (Metadata)
  },
  "controllerRollout": string,
  "rollbackOfRollout": string,
  "rolledBackByRollouts": [
    string
  ]
}
字段
name

string

可选。Rollout 的名称。格式为 projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}rollout 组成部分必须与 [a-z]([a-z0-9-]{0,61}[a-z0-9])? 一致

uid

string

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

description

string

用于用户用途的 Rollout 的说明。长度上限为 255 个字符。

annotations

map (key: string, value: string)

用户注释。这些属性只能由用户设置和使用,Cloud Deploy 不能进行设置和使用。如需了解详情(例如格式和大小限制),请参阅 https://google.aip.dev/128#annotations

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

labels

map (key: string, value: string)

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

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

此外,键和值均被限制为小于等于 128 个字节。

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

createTime

string (Timestamp format)

仅限输出。Rollout 的创建时间。

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

approveTime

string (Timestamp format)

仅限输出。Rollout的批准时间。

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

enqueueTime

string (Timestamp format)

仅限输出。Rollout 加入队列的时间。

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

deployStartTime

string (Timestamp format)

仅限输出。Rollout 开始部署的时间。

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

deployEndTime

string (Timestamp format)

仅限输出。Rollout 完成部署的时间。

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

targetId

string

必需。此 Rollout 部署到的目标的 ID。

approvalState

enum (ApprovalState)

仅限输出。Rollout的审批状态。

state

enum (State)

仅限输出。Rollout的当前状态。

failureReason

string

仅限输出。有关发布失败的其他信息(如果有)。

deployingBuild

string

仅限输出。用于部署发布的 Cloud Build Build 对象的资源名称。格式为 projects/{project}/locations/{location}/builds/{build}

etag

string

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

deployFailureCause

enum (FailureCause)

仅限输出。此发布失败的原因。在发布过程中,系统始终不会指定此字段。

phases[]

object (Phase)

仅限输出。表示此 Rollout 的工作流的阶段。

metadata

object (Metadata)

仅限输出。元数据包含发布的相关信息。

controllerRollout

string

仅限输出。ControllerRollout 的名称。格式为 projects/{project}/locations/{location}/deliveryPipelines/{deliveryPipeline}/releases/{release}/rollouts/{rollout}

rollbackOfRollout

string

仅限输出。由此 Rollout 回滚的 Rollout 的名称。如果此 Rollout 不是作为回滚创建的,则为空。

rolledBackByRollouts[]

string

仅限输出。回滚此 RolloutRollouts 的名称。

ApprovalState

Rollout 的有效审批状态。

枚举
APPROVAL_STATE_UNSPECIFIED Rollout 的审批状态未指定。
NEEDS_APPROVAL Rollout需要批准。
DOES_NOT_NEED_APPROVAL Rollout无需批准。
APPROVED Rollout已获批准。
REJECTED Rollout已遭拒。

状态

Rollout 的有效状态。

枚举
STATE_UNSPECIFIED Rollout 处于未指定状态。
SUCCEEDED Rollout已成功完成。
FAILED Rollout失败。
IN_PROGRESS 正在部署“Rollout”。
PENDING_APPROVAL Rollout需要批准。
APPROVAL_REJECTED 审批人拒绝了Rollout
PENDING Rollout正在等待此Target上的早期发布完成。
PENDING_RELEASE Rollout 正在等待 Release 完全呈现。
CANCELLING 正在取消Rollout
CANCELLED Rollout已取消。
HALTED Rollout已停止运行。

FailureCause

众所周知的发布失败。

枚举
FAILURE_CAUSE_UNSPECIFIED 未指定失败原因。
CLOUD_BUILD_UNAVAILABLE Cloud Build 不可用,可能是因为它未启用,或者 Cloud Deploy 的权限不足。查看所需权限
EXECUTION_FAILED 部署操作未成功完成;请检查 Cloud Build 日志。
DEADLINE_EXCEEDED 部署未在分配的时间内完成。
RELEASE_FAILED 版本处于失败状态。
RELEASE_ABANDONED 已放弃版本。
VERIFICATION_CONFIG_NOT_FOUND 未找到 Skaffold 验证配置。
CLOUD_BUILD_REQUEST_FAILED Cloud Build 未能满足 Cloud Deploy 的请求。如需了解更多详情,请参阅 failedMessage。
OPERATION_FEATURE_NOT_SUPPORTED 发布操作配置的功能不受支持。

阶段

阶段表示在逻辑上针对 Rollout 组合在一起的作业集合。

JSON 表示法
{
  "id": string,
  "state": enum (State),
  "skipMessage": string,

  // Union field jobs can be only one of the following:
  "deploymentJobs": {
    object (DeploymentJobs)
  },
  "childRolloutJobs": {
    object (ChildRolloutJobs)
  }
  // End of list of possible types for union field jobs.
}
字段
id

string

仅限输出。阶段的 ID。

state

enum (State)

仅限输出。阶段的当前状态。

skipMessage

string

仅限输出。有关跳过该阶段的原因(如果有)的更多信息。

联合字段 jobs。此阶段的作业构成。jobs 只能是下列其中一项:
deploymentJobs

object (DeploymentJobs)

仅限输出。组合部署作业。

childRolloutJobs

object (ChildRolloutJobs)

仅限输出。ChildRollout 作业组合。

状态

阶段的有效状态。

枚举
STATE_UNSPECIFIED 阶段处于未指定状态。
PENDING 此阶段正在等待较早的阶段完成。
IN_PROGRESS 此阶段正在进行中。
SUCCEEDED 阶段已成功。
FAILED 阶段失败。
ABORTED 阶段已中止。
SKIPPED 已跳过阶段。

DeploymentJobs

组合部署作业。

JSON 表示法
{
  "deployJob": {
    object (Job)
  },
  "verifyJob": {
    object (Job)
  },
  "predeployJob": {
    object (Job)
  },
  "postdeployJob": {
    object (Job)
  }
}
字段
deployJob

object (Job)

仅限输出。部署作业。这是此阶段的部署作业。

verifyJob

object (Job)

仅限输出。验证作业。如果部署成功,则在部署后运行。

predeployJob

object (Job)

仅限输出。部署前作业,即阶段中的第一个作业。

postdeployJob

object (Job)

仅限输出。部署后作业,即此阶段的最后一个作业。

作业

Job 表示 Rollout 的操作。

JSON 表示法
{
  "id": string,
  "state": enum (State),
  "skipMessage": string,
  "jobRun": string,

  // Union field job_type can be only one of the following:
  "deployJob": {
    object (DeployJob)
  },
  "verifyJob": {
    object (VerifyJob)
  },
  "predeployJob": {
    object (PredeployJob)
  },
  "postdeployJob": {
    object (PostdeployJob)
  },
  "createChildRolloutJob": {
    object (CreateChildRolloutJob)
  },
  "advanceChildRolloutJob": {
    object (AdvanceChildRolloutJob)
  }
  // End of list of possible types for union field job_type.
}
字段
id

string

仅限输出。作业的 ID。

state

enum (State)

仅限输出。作业的当前状态。

skipMessage

string

仅限输出。有关跳过作业原因的更多信息(如果有)。

jobRun

string

仅限输出。负责最近一次调用此 Job 的 JobRun 的名称。

联合字段 job_type。Job 的类型。job_type 只能是下列其中一项:
deployJob

object (DeployJob)

仅限输出。部署作业。

verifyJob

object (VerifyJob)

仅限输出。验证 Job。

predeployJob

object (PredeployJob)

仅限输出。部署前作业。

postdeployJob

object (PostdeployJob)

仅限输出。部署后作业。

createChildRolloutJob

object (CreateChildRolloutJob)

仅限输出。createChildRollout 作业。

advanceChildRolloutJob

object (AdvanceChildRolloutJob)

仅限输出。priorityChildRollout 作业。

状态

Job 的有效状态。

枚举
STATE_UNSPECIFIED Job 处于未指定状态。
PENDING 作业正在等待较早的阶段或作业完成。
DISABLED 此作业已停用。
IN_PROGRESS 作业正在进行中。
SUCCEEDED Job 成功。
FAILED 作业失败。
ABORTED 作业已取消。
SKIPPED 此作业已被跳过。
IGNORED 此作业已被忽略。

DeployJob

此类型没有字段。

部署作业。

VerifyJob

此类型没有字段。

验证 Job。

PredeployJob

部署前作业。

JSON 表示法
{
  "actions": [
    string
  ]
}
字段
actions[]

string

仅限输出。部署前作业执行的自定义操作。

PostdeployJob

部署后作业。

JSON 表示法
{
  "actions": [
    string
  ]
}
字段
actions[]

string

仅限输出。部署后作业执行的自定义操作。

CreateChildRolloutJob

此类型没有字段。

createChildRollout 作业。

AdvanceChildRolloutJob

此类型没有字段。

priorityChildRollout 作业。

ChildRolloutJobs

ChildRollouts 作业构成

JSON 表示法
{
  "createRolloutJobs": [
    {
      object (Job)
    }
  ],
  "advanceRolloutJobs": [
    {
      object (Job)
    }
  ]
}
字段
createRolloutJobs[]

object (Job)

仅限输出。CreateChildRolloutJob 列表

advanceRolloutJobs[]

object (Job)

仅限输出。AdvanceChildRolloutJob 列表

元数据

元数据包含与 Rollout 相关的信息。

JSON 表示法
{
  "cloudRun": {
    object (CloudRunMetadata)
  },
  "automation": {
    object (AutomationRolloutMetadata)
  },
  "custom": {
    object (CustomMetadata)
  }
}
字段
cloudRun

object (CloudRunMetadata)

仅限输出。与 Rollout 关联的 Cloud Run 服务的名称。

automation

object (AutomationRolloutMetadata)

仅限输出。AutomationRolloutMetadata 包含有关 Automation 服务与此发布之间交互的信息。

custom

object (CustomMetadata)

仅限输出。由用户定义的 Rollout 操作提供的自定义元数据。

AutomationRolloutMetadata

AutomationRolloutMetadata 包含对发布执行的 Automation 相关操作。

JSON 表示法
{
  "promoteAutomationRun": string,
  "advanceAutomationRuns": [
    string
  ],
  "repairAutomationRuns": [
    string
  ],
  "currentRepairAutomationRun": string
}
字段
promoteAutomationRun

string

仅限输出。由推广版本规则启动的 AutomationRun 的 ID。

advanceAutomationRuns[]

string

仅限输出。由高级发布规则启动的 AutomationRuns 的 ID。

repairAutomationRuns[]

string

仅限输出。由修复发布规则启动的 AutomationRuns 的 ID。

currentRepairAutomationRun

string

仅限输出。正在修复发布的当前 AutomationRun。

方法

advance

在给定的项目和位置推进发布。

approve

批准发布。

cancel

取消给定项目和位置的发布。

create

在给定的项目和位置创建新的发布。

get

获取单个发布的详细信息。

ignoreJob

忽略发布中的指定作业。

list

列出给定项目和位置中的发布。

retryJob

重试发布中的指定作业。