处理直播需要管理多个组件, 提取、转码和多路复用等任务。Live Stream API 使用池在内部管理这些组件和资源。池是 为每个 Google Cloud 项目为每个区域分配并共享 所有渠道之间的流量。
默认情况下,当您创建
Input
您将获得一个包含公共 IP 地址的端点 URI,
可以发送输入流。无论您是从本地网络还是从 Google Cloud Virtual Private Cloud (VPC) 网络进行直播,数据都需要穿越公共互联网才能到达直播服务端点。
或者,您也可以设置对直播服务的专用服务访问权限。专用服务访问通道是一种安全的专用连接, Google Cloud 虚拟私有云 (VPC) 网络,以及由 Google 管理的 第三方服务。此连接支持您的 VPC 网络中的虚拟机实例 使用内部 IP 地址与这些服务进行通信 将流量传输到公共互联网在 Live Stream API 中启用专用服务访问权限后,系统会从您的 VPC 网络中预留一个内部 IP 地址,以用作输入端点。这样做具有以下优势:
- 安全性更高:专用服务访问通道可让您连接到 Live Stream API 输入端点,而无需向 公共互联网。这有助于改善您的安全状况并减少 数据泄露风险
- 提高性能:专用服务访问通道可避免使用公共互联网,从而提高连接性能。这对于实现更短的延迟时间和更高的吞吐量特别有益。
您还可以将专用服务访问权限与 Cloud Interconnect 或 Cloud VPN 搭配使用,以便在本地网络和直播服务之间提供端到端的专用连接。
准备工作
如需配置专用池,请先满足以下前提条件:
- 您必须拥有 现有 VPC 网络 可用于连接到服务提供方的网络虚拟机实例必须使用此 VPC 网络通过专用连接接入服务。
- 您必须在 VPC 网络上配置专用服务访问通道。
- 必须停止该区域中的所有频道,否则 Live Stream API 会拒绝更新池的对等网络的请求。
- 在更新广告资源池期间,该区域中的所有渠道都无法启动。
配置专用池
确保已创建默认池。位置的默认池 创建第一个 Pod 时
Input
资源。在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目 编号;此编号位于 API 单元上的项目编号字段中 IAM 设置页面LOCATION
:使用某个受支持的区域,并且该区域 您已经创建了输入显示位置us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME }
使用对等互连网络名称更新池。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的项目编号字段中LOCATION
:默认池的位置;使用一个 的受支持区域显示营业地点us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
NETWORK
:当前项目中要与服务对等互连的网络的用户定义标识符
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
该请求会启动一个长时间运行的操作。复制返回的 OPERATION_ID(在接下来的)中使用 操作。
使用
projects.locations.operations.get
方法来检查更新是否已完成。更新池最多可能需要 30 分钟才能完成。如果响应包含"done: false"
,请重复请求,直到响应包含"done: true"
。在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目 编号;此编号位于 API 单元上的项目编号字段中 IAM 设置页面LOCATION
:您的资源所在的位置 located;请使用某个受支持的区域显示位置us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
OPERATION_ID
:操作的标识符
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "endTime": END_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": true, "response": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.Pool", "name": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default", "createTime": CREATE_TIME, "updateTime": UPDATE_TIME, "networkConfig": { "peeredNetwork": "projects/PROJECT_NUMBER/global/networks/NETWORK" } }
更新后,该区域中现有(和未来)输入端点的所有 URI 都是从所提供的 VPC 网络中预留的内部 IP 地址。列出输入端点,查看更新后的 URI。
切换到公开池
如需恢复为公共池,请在更新池请求中将空字符串作为对等网络名称提供。
在使用任何请求数据之前,请先进行以下替换:
PROJECT_NUMBER
:您的 Google Cloud 项目编号;此值位于 IAM 设置页面上的项目编号字段中LOCATION
:默认池的位置;请使用某个受支持的地区显示营业地点us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-northeast1
asia-southeast1
australia-southeast1
europe-west1
europe-west2
europe-west3
europe-west4
如需发送您的请求,请展开以下选项之一:
您应该收到类似以下内容的 JSON 响应:
{ "name": "projects/PROJECT_NUMBER/locations/LOCATION/operations/OPERATION_ID", "metadata": { "@type": "type.googleapis.com/google.cloud.video.livestream.v1.OperationMetadata", "createTime": CREATE_TIME, "target": "projects/PROJECT_NUMBER/locations/LOCATION/pools/default", "verb": "update", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
再次使用
projects.locations.operations.get
方法来检查更新是否已完成。