L'elaborazione di un live streaming richiede la gestione di più componenti che svolgono attività come importazione, transcodifica e multiplexing. L'API Live Stream gestisce questi componenti e queste risorse internamente utilizzando i pool. Un pool è un'unità di elaborazione allocata per ogni progetto Google Cloud per regione ed è condivisa tra tutti i canali di una determinata regione.
Per impostazione predefinita, quando crei una risorsa
Input
, ti viene fornito un URI endpoint contenente un indirizzo IP pubblico a cui
puoi inviare gli stream di input. Indipendentemente dal fatto che lo streaming venga eseguito da una rete on-premise o da una Google Cloud rete Virtual Private Cloud (VPC), i dati attraversano la rete internet pubblica per raggiungere l'endpoint del servizio di live streaming.
In alternativa, puoi configurare l'accesso privato ai servizi per il servizio di live streaming. L'accesso privato ai servizi è una connessione privata e sicura tra la tua Google Cloud rete VPC (Virtual Private Cloud) e i servizi gestiti da Google o di terze parti. Questa connessione consente alle istanze VM nella rete VPC di comunicare con questi servizi utilizzando indirizzi IP interni, senza esporre il traffico alla rete internet pubblica. Quando attivi l'accesso ai servizi privati nell'API Live Stream, viene riservato un indirizzo IP interno della tua rete VPC da utilizzare come endpoint di input. Questo approccio presenta i seguenti vantaggi:
- Maggiore sicurezza: l'accesso ai servizi privati ti consente di connetterti agli endpoint di input dell'API Live Stream senza esporre il tuo traffico alla rete internet pubblica. In questo modo puoi migliorare la tua posizione di sicurezza e ridurre il rischio di una violazione dei dati.
- Maggiore rendimento: l'accesso privato ai servizi può migliorare il rendimento delle connessioni evitando la rete internet pubblica. Ciò può essere particolarmente utile per ottenere una latenza inferiore e una maggiore velocità effettiva.
Puoi anche accoppiare l'accesso ai servizi privati con Cloud Interconnect o Cloud VPN per fornire una connessione privata end-to-end tra la tua rete on-premise e il servizio di live streaming.
Prima di iniziare
Per configurare un pool privato, completa i seguenti prerequisiti:
- Devi disporre di una rete VPC esistente che puoi utilizzare per connetterti alla rete del producer di servizi. Le istanze VM devono utilizzare questa rete VPC per connettersi ai servizi tramite una connessione privata.
- Devi configurare l'accesso privato ai servizi sulla rete VPC.
- Tutti i canali della regione devono essere interrotti, altrimenti l'API Live Stream rifiuta la richiesta di aggiornamento della rete con peering del pool.
- Non è possibile avviare tutti i canali della regione durante l'aggiornamento del pool.
Configurare un pool privato
Assicurati che sia già stato creato un pool predefinito. Il pool predefinito per una località viene creato quando crei la prima risorsa
Input
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
: il numero Google Cloud del progetto, che si trova nel campo Numero progetto della pagina Impostazioni IAMPROJECT_NUMBER
: utilizza una delle regioni supportate in cui hai già creato un inputLOCATION Mostra sedius-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
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /pools/default"PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /pools/default" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "name": "projects/
PROJECT_NUMBER /locations/LOCATION /pools/default", "createTime":CREATE_TIME , "updateTime":UPDATE_TIME }Aggiorna il pool con il nome della rete a cui è associato.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
: il numero Google Cloud del progetto, che si trova nel campo Numero progetto della pagina Impostazioni IAMPROJECT_NUMBER
: la posizione del pool predefinito. Utilizza una delle regioni supportateLOCATION Mostra sedius-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
: l'identificatore definito dall'utente per la rete nel progetto corrente da mettere in peer con il servizioNETWORK
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:cat > request.json << 'EOF' { "networkConfig": { "peeredNetwork": "projects/
PROJECT_NUMBER /global/networks/NETWORK " } } EOFQuindi, esegui il seguente comando per inviare la richiesta REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /pools/default?updateMask=networkConfig"PowerShell (Windows)
Salva il corpo della richiesta in un file denominato
request.json
. Esegui questo comando nel terminale per creare o sovrascrivere questo file nella directory corrente:@' { "networkConfig": { "peeredNetwork": "projects/
PROJECT_NUMBER /global/networks/NETWORK " } } '@ | Out-File -FilePath request.json -Encoding utf8Quindi, esegui il seguente comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /pools/default?updateMask=networkConfig" | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "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 }La richiesta avvia un'operazione a lunga esecuzione. Copia il valore
OPERATION_ID restituito da utilizzare nel passaggio successivo.Utilizza il metodo
projects.locations.operations.get
per verificare se l'aggiornamento è stato completato. L'aggiornamento del pool potrebbe richiedere fino a 30 minuti. Se la risposta contiene"done: false"
, ripeti la richiesta finché la risposta non contiene"done: true"
.Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
: il numero Google Cloud del progetto, che si trova nel campo Numero progetto della pagina Impostazioni IAMPROJECT_NUMBER
: la località in cui si trova la risorsa. Utilizza una delle regioni supportateLOCATION Mostra sedius-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
: l'identificatore dell'operazioneOPERATION_ID
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Esegui questo comando:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /operations/OPERATION_ID "PowerShell (Windows)
Esegui questo comando:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method GET `
-Headers $headers `
-Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /operations/OPERATION_ID " | Select-Object -Expand ContentDovresti ricevere una risposta JSON simile alla seguente:
{ "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 " } }
Dopo l'aggiornamento, tutti gli URI per gli endpoint di input esistenti (e futuri) nella regione sono indirizzi IP interni riservati dalla rete VPC fornita. Elenca gli endpoint di input per visualizzare gli URI aggiornati.
Passaggio al pool pubblico
Per ripristinare il pool pubblico, specifica una stringa vuota come nome della rete connessa in peer nella richiesta di aggiornamento del pool.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
: il numero Google Cloud del progetto, che si trova nel campo Numero progetto della pagina Impostazioni IAMPROJECT_NUMBER
: la posizione del pool predefinito. Utilizza una delle regioni supportateLOCATION Mostra sedius-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
Per inviare la richiesta, espandi una di queste opzioni:
curl (Linux, macOS o Cloud Shell)
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
cat > request.json << 'EOF' { "networkConfig": { "peeredNetwork": "" } } EOF
Quindi, esegui il seguente comando per inviare la richiesta REST:
curl -X PATCH \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /pools/default?updateMask=networkConfig"
PowerShell (Windows)
Salva il corpo della richiesta in un file denominato request.json
.
Esegui questo comando nel terminale per creare o sovrascrivere
questo file nella directory corrente:
@' { "networkConfig": { "peeredNetwork": "" } } '@ | Out-File -FilePath request.json -Encoding utf8
Quindi, esegui il seguente comando per inviare la richiesta REST:
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method PATCH `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://livestream.googleapis.com/v1/projects/PROJECT_NUMBER /locations/LOCATION /pools/default?updateMask=networkConfig" | Select-Object -Expand Content
Dovresti ricevere una risposta JSON simile alla seguente:
{ "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 }
Puoi utilizzare di nuovo il metodo projects.locations.operations.get
per verificare se l'aggiornamento è stato completato.