处理直播需要管理多个组件, 提取、转码和多路复用等任务。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 网络
- 该区域的所有频道都必须 stopped,否则 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 项目 编号;此编号位于 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
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
:您的资源所在的位置 所在位置;请使用某个受支持的区域显示位置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" } }
更新后, 是为提供的 VPC 网络预留的内部 IP 地址。 列出输入端点 查看更新后的 URI。
切换到公开池
如需还原为公共池,请提供空字符串作为对等互连网络 更新池请求中的名称。
在使用任何请求数据之前,请先进行以下替换:
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/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
方法来检查更新是否已完成。