You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询google-cloud-compute函数返回值及ExtendedOperation对象详情

google-cloud-compute 接口返回 ExtendedOperation 对象说明

目前google-cloud-compute 客户端中所有涉及资源创建、更新、删除的异步接口(比如互联附件的insert方法),文档仅标注返回google.api_core.extended_operation.ExtendedOperation对象,没有给出对象的具体定义和使用方式,实际可用的核心属性、方法如下:

核心属性与方法

  • name: 字符串类型,GCP侧生成的操作唯一标识,可用于跨进程查询对应操作的状态
  • done: 布尔值,标记操作是否进入终态,True代表操作已经执行结束(包含成功、失败两种结果),False代表操作仍在运行中
  • metadata: Protobuf 结构体,存储操作关联的元信息,不同接口返回的metadata字段有差异,通用字段包含操作类型、目标资源路径、操作发起时间、进度占比、操作用户身份等
  • result(timeout=None): 阻塞方法,调用后会等待直到操作执行完成,操作成功时返回对应接口的响应结构体,操作失败时直接抛出对应API异常(包含参数错误、权限不足、配额超限等具体错误信息),可传入timeout参数设置最大等待时长,超时会抛出超时异常
  • exception(timeout=None): 阻塞方法,等待操作完成后,若操作成功返回None,若操作失败返回对应的异常对象,不会主动抛出错误
  • cancel(): 方法,向GCP端提交操作取消请求,返回布尔值标记取消请求是否提交成功,已经进入终态的操作无法被取消

常规使用示例

from google.cloud import compute_v1

# 初始化互联附件客户端
client = compute_v1.InterconnectAttachmentsClient()

# 发起创建请求,接口不会等待操作完成,立即返回ExtendedOperation对象
operation = client.insert(
    project="你的项目ID",
    region="目标区域",
    interconnect_attachment_resource=compute_v1.InterconnectAttachment(
        name="测试互联附件名称"
    )
)

# 等待操作完成,处理结果
try:
    create_resp = operation.result()
    print(f"操作执行成功,操作ID:{operation.name}")
except Exception as err:
    print(f"操作执行失败,错误信息:{str(err)}")

注意:不建议自行实现轮询done字段的逻辑判断操作状态,result()方法内部已经封装了适配GCP接口限流规则的轮询策略和退避逻辑,直接调用即可。

内容的提问来源于stack exchange,提问作者it_works_on_my_computer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 15:31:57