处理直播需要管理多个组件,这些组件负责执行提取、转码和多路复用等任务。Live Stream API 会使用池在内部管理这些组件和资源。池是指为每个区域的每个项目分配的处理单元,并在给定区域的所有渠道之间共享。 Google Cloud
默认情况下,当您创建 Input
资源时,系统会为您提供一个包含公共 IP 地址的端点 URI,您可以将输入数据流发送到该地址。无论您是从本地网络还是 Google 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 会拒绝更新池的对等网络的请求。
- 在更新广告资源池期间,该区域中的所有渠道都无法启动。
配置专用池
确保已创建默认池。当您创建第一个
Input
资源时,系统会为相应位置创建默认池。在使用任何请求数据之前,请先进行以下替换:
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-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
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-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
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 项目编号;此值位于 IAM 设置页面上的“项目编号”字段中LOCATION
:资源所在的位置;请使用某个受支持的地区显示位置us-central1
us-east1
us-east4
us-west1
us-west2
northamerica-northeast1
southamerica-east1
asia-east1
asia-east2
asia-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
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-south1
asia-northeast1
asia-southeast1
australia-southeast1
europe-north1
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
方法检查更新是否已完成。