管理长时间运行的操作

本页介绍了如何管理 Video Stitcher API 长时间运行的操作 (LRO) 的生命周期。

如果方法调用可能需要很长时间才能完成,系统就会返回长时间运行的操作。例如,Video Stitcher API 每次调用都会创建一个 LRO projects.locations.liveConfigs.create。 LRO 会跟踪处理作业的状态。

您可以使用 projects.locations.operations 方法 视频拼接器 API 提供的状态 LRO。你还可以列出取消删除 LRO。

LRO 会在 Google Cloud 项目和位置层级上加以管理。 向该 API 发出请求时,请在其中提供 Google Cloud 项目以及 LRO 的运行位置。

在 LR 完成之后,LRO 的记录会保留大约 30 天,也就是说,在这段时间之后,您将无法再查看或列出 LRO。

获取有关长时间运行的操作的详细信息

假设您创建了一个实时配置。 响应中的 name 值表明,Video Stitcher API 创建了一个名为 projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID 的 LRO。

如需检查是否已创建输入端点,请使用 projects.locations.operations.get 方法。如果响应包含 "done": false,请重复该命令,直到响应包含 "done": true。此操作可能需要几分钟才能完成。

您还可以通过列出长时间运行的操作来检索 LRO 名称。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_NUMBER:您的 Google Cloud 项目编号; 该名称位于 IAM 设置项目编号字段中 页
  • LOCATION:数据的位置;请使用某个受支持的地区
    显示位置
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID:操作的标识符

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
  "metadata": {
    "@type": "type.googleapis.com/google.cloud.common.OperationMetadata",
    "createTime": CREATE_TIME,
    "endTime": END_TIME,
    "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID",
    "verb": "create",
    "cancelRequested": false,
    "apiVersion": "v1"
  },
  "done": true,
  "response": {
    "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.LiveConfig",
    "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID",
    "sourceUri": "SOURCE_LIVESTREAM_URI",
    "adTagUri": "AD_TAG_URI",
    "state": "READY",
    "adTracking": "CLIENT",
    "defaultSlate": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID",
    "stitchingPolicy": "CUT_CURRENT",
    "defaultAdBreakDuration": "30s"
  }
}

如果操作失败,您会收到 error 形式的错误信息 对象来协助进行问题排查

{
  "error": {
    "code": 404,
    "message": "got status code 403 when fetching playlist from URI \"https://example.com/manifest.m3u8\"",
    "status": "NOT_FOUND"
  }
}

列出长时间运行的操作

如需列出指定位置中的所有操作,请使用 projects.locations.operations.list 方法。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_NUMBER:您的 Google Cloud 项目 编号;此编号位于 API 单元上的项目编号字段中 IAM 设置页面
  • LOCATION:操作的位置;请使用某个受支持的地区
    显示位置
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "operations": [
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "endTime": END_TIME,
        "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/LIVE_CONFIG_ID,
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": false
    },
    {
      "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/my-other-operation",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.OperationMetadata",
        "createTime": CREATE_TIME,
        "endTime": END_TIME,
        "target": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/my-other-live-config",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.video.stitcher.v1.LiveConfig",
        "name": "projects/PROJECT_NUMBER/locations/LOCATION/liveConfigs/my-other-live-config",
        "sourceUri": "SOURCE_LIVESTREAM_URI",
        "adTagUri": "AD_TAG_URI",
        "state": "READY",
        "adTracking": "SERVER",
        "defaultSlate": "projects/PROJECT_NUMBER/locations/LOCATION/slates/SLATE_ID",
        "stitchingPolicy": "CUT_CURRENT",
        "defaultAdBreakDuration": "30s"
      }
    }
  ]
}

取消长时间运行的操作

如需对长时间运行的操作启动异步取消,请使用 projects.locations.operations.cancel 方法。服务器会尽可能取消操作,但不能保证一定成功。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_NUMBER:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的项目编号字段中
  • LOCATION:操作的位置; 请使用某个受支持的区域
    显示营业地点
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID:操作的标识符

如需发送您的请求,请展开以下选项之一:

您应该会收到一个空的 JSON 对象作为响应:
{}

删除长时间运行的操作

如需删除已完成的长时间运行操作,请使用 projects.locations.operations.delete 方法。此方法表明,客户端不再关注 操作结果。而不会取消操作。

在使用任何请求数据之前,请先进行以下替换:

  • PROJECT_NUMBER:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的项目编号字段中
  • LOCATION:操作的位置; 请使用某个受支持的区域
    显示营业地点
    • us-central1
    • us-east1
    • us-west1
    • asia-east1
    • asia-south1
    • asia-southeast1
    • europe-west1
    • southamerica-east1
  • OPERATION_ID:操作的标识符

如需发送您的请求,请展开以下选项之一:

您应该会收到一个空的 JSON 对象作为响应:
{}