處理直播時,需要管理多個元件,執行擷取、轉碼和多重訊號處理等工作。Live Stream API 會使用集區在內部管理這些元件和資源。集區是為每個區域的每個專案分配的處理單元,並由特定區域的所有管道共用。 Google Cloud
根據預設,建立 Input
資源時,系統會提供端點 URI,其中包含可用來傳送輸入串流的公開 IP 位址。無論您是從內部部署網路還是 Google Cloud 虛擬私有雲 (VPC) 網路串流,資料都會經過公開網際網路,才能抵達直播服務端點。
或者,您也可以設定私人服務存取權,以便存取直播服務。私人服務存取權是指在您的Google Cloud 虛擬私有雲 (VPC) 網路與 Google 管理或第三方服務之間建立的私人連線。這個連線可讓虛擬私有雲網路中的 VM 執行個體使用內部 IP 位址與這些服務通訊,而不必將流量暴露於公開網際網路。在 Live Stream API 中啟用私人服務存取權後,系統會從 VPC 網路保留內部 IP 位址,用於做為輸入端點。這麼做有以下優點:
- 提升安全性:私人服務存取權可讓您連線至 Live Stream API 輸入端點,不必將流量暴露於公開網際網路。這有助於改善您的安全防護狀態,並降低資料外洩的風險。
- 提升效能:私人服務存取權可避免使用公開網際網路,進而提升連線效能。這對降低延遲和提高處理量特別有幫助。
您也可以將私人服務存取權與 Cloud Interconnect 或 Cloud VPN 配對,在內部部署網路和即時串流服務之間提供端對端私人連線。
事前準備
如要設定私人集區,請完成下列必要條件:
- 您必須具有現有的 VPC 網路,才能連線至服務供應商的網路。VM 執行個體必須使用這個 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
:目前專案中網路的使用者定義 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, "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
:作業的 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
方法,檢查更新是否已完成。