本页介绍了如何管理 Video Stitcher API 长时间运行的操作 (LRO) 的生命周期。
如果方法调用可能需要很长时间才能完成,系统就会返回长时间运行的操作。例如,Video Stitcher API 会在您每次调用 projects.locations.liveConfigs.create 时创建一个 LRO。LRO 会跟踪处理作业的状态。
您可以使用 Video Stitcher API 提供的 projects.locations.operations 方法来检查 LRO 的状态。您还可以对 LRO 执行 list、cancel 或 delete 操作。
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-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-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 项目编号;此值位于 IAM 设置页面上的“项目编号”字段中LOCATION:操作的位置;请使用某个受支持的地区显示位置us-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-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-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-east1
OPERATION_ID:操作的标识符
如需发送您的请求,请展开以下选项之一:
您应该会收到一个空的 JSON 对象作为响应:
{}
删除长时间运行的操作
如需删除已完成的长时间运行操作,请使用 projects.locations.operations.delete 方法。此方法只是表明客户端不再关注操作结果,而不会取消操作。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER:您的 Google Cloud 项目编号;该编号位于 IAM 设置页面上的“项目编号”字段中LOCATION:操作的位置;请使用某个受支持的地区显示位置us-central1us-east1us-west1asia-east1asia-south1asia-southeast1europe-west1southamerica-east1
OPERATION_ID:操作的标识符
如需发送您的请求,请展开以下选项之一:
您应该会收到一个空的 JSON 对象作为响应:
{}