Für die Verarbeitung eines Livestreams müssen mehrere Komponenten verwaltet werden, die Aufgaben wie Datenaufnahme, Transcodierung und Multiplexing ausführen. Die Live Stream API verwaltet diese Komponenten und Ressourcen intern mithilfe von Pools. Ein Pool ist eine Verarbeitungseinheit, die jedem Google Cloud-Projekt pro Region zugewiesen wird und von allen Kanälen in einer bestimmten Region gemeinsam genutzt wird.
Wenn Sie eine Input
-Ressource erstellen, erhalten Sie standardmäßig einen Endpunkt-URI mit einer öffentlichen IP-Adresse, an die Sie Ihre Eingabestreams senden können. Unabhängig davon, ob du von einem lokalen Netzwerk oder von einem Google Cloud -VPC-Netzwerk (Virtual Private Cloud) streamst, werden die Daten über das öffentliche Internet an den Endpunkt des Livestream-Dienstes gesendet.
Alternativ kannst du den Zugriff auf den Livestreamdienst für private Dienste einrichten. Der Zugriff auf private Dienste ist eine sichere, private Verbindung zwischen IhremGoogle Cloud -Virtual Private Cloud-Netzwerk (VPC) und von Google verwalteten Diensten oder Diensten von Drittanbietern. Über diese Verbindung können VM-Instanzen in Ihrem VPC-Netzwerk mit diesen Diensten über interne IP-Adressen kommunizieren, ohne dass der Traffic dem öffentlichen Internet ausgesetzt wird. Wenn du den Zugriff für private Dienste in der Live Stream API aktivierst, wird eine interne IP-Adresse aus deinem VPC-Netzwerk reserviert, die als Eingabeendpunkt verwendet wird. Das hat folgende Vorteile:
- Verbesserte Sicherheit: Mit dem Zugriff auf private Dienste kannst du eine Verbindung zu Live Stream API-Eingabeendpunkten herstellen, ohne dass dein Traffic dem öffentlichen Internet ausgesetzt wird. So können Sie Ihre Sicherheitslage verbessern und das Risiko einer Datenpanne verringern.
- Höhere Leistung: Der Zugriff auf private Dienste kann die Leistung Ihrer Verbindungen verbessern, da das öffentliche Internet nicht verwendet wird. Dies kann sich besonders positiv auf die Latenz und den Durchsatz auswirken.
Sie können den Zugriff auf private Dienste auch mit Cloud Interconnect oder Cloud VPN kombinieren, um eine Ende-zu-Ende-Verbindung zwischen Ihrem lokalen Netzwerk und dem Livestreamdienst herzustellen.
Hinweise
Sie müssen die folgenden Voraussetzungen erfüllen, um einen privaten Pool zu konfigurieren:
- Sie benötigen ein vorhandenes VPC-Netzwerk, mit dem Sie eine Verbindung zum Netzwerk des Diensterstellers herstellen können. VM-Instanzen müssen dieses VPC-Netzwerk verwenden, um sich über eine private Verbindung mit Diensten zu verbinden.
- Sie müssen den Zugriff auf private Dienste im VPC-Netzwerk konfigurieren.
- Alle Kanäle in der Region müssen angehalten werden. Andernfalls lehnt die Live Stream API die Anfrage zum Aktualisieren des Peer-Netzwerks des Pools ab.
- Während der Aktualisierung des Pools können keine Kanäle in der Region gestartet werden.
Privaten Pool konfigurieren
Achten Sie darauf, dass bereits ein Standardpool erstellt wurde. Der Standardpool für einen Standort wird erstellt, wenn Sie die erste
Input
-Ressource erstellen.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
: Die Projektnummer Ihres Google Cloud . Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.PROJECT_NUMBER
: Verwenden Sie eine der unterstützten Regionen, in denen Sie bereits eine Eingabe erstellt haben.LOCATION Standorte anzeigenus-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
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Führen Sie folgenden Befehl aus:
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)
Führen Sie folgenden Befehl aus:
$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 ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "name": "projects/
PROJECT_NUMBER /locations/LOCATION /pools/default", "createTime":CREATE_TIME , "updateTime":UPDATE_TIME }Aktualisieren Sie den Pool mit dem Namen des Peer-Netzwerks.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
: Die Projektnummer Ihres Google Cloud . Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.PROJECT_NUMBER
: Der Speicherort des Standard-Pools. Verwenden Sie eine der unterstützten Regionen.LOCATION Standorte anzeigenus-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
: die benutzerdefinierte Kennung für das Netzwerk im aktuellen Projekt, das mit dem Dienst gekoppelt werden sollNETWORK
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:cat > request.json << 'EOF' { "networkConfig": { "peeredNetwork": "projects/
PROJECT_NUMBER /global/networks/NETWORK " } } EOFFühren Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
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)
Speichern Sie den Anfragetext in einer Datei mit dem Namen
request.json
. Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:@' { "networkConfig": { "peeredNetwork": "projects/
PROJECT_NUMBER /global/networks/NETWORK " } } '@ | Out-File -FilePath request.json -Encoding utf8Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$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 ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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 }Die Anfrage initiiert einen lang andauernden Vorgang. Kopieren Sie den zurückgegebenen
OPERATION_ID , um ihn im nächsten Schritt zu verwenden.Verwenden Sie die Methode
projects.locations.operations.get
, um zu prüfen, ob die Aktualisierung abgeschlossen wurde. Das Aktualisieren des Pools kann bis zu 30 Minuten dauern. Wenn die Antwort"done: false"
enthält, wiederhole den Vorgang, bis die Antwort"done: true"
enthält.Ersetzen Sie diese Werte in den folgenden Anfragedaten:
: Die Projektnummer Ihres Google Cloud . Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.PROJECT_NUMBER
: Der Standort Ihrer Ressource. Verwenden Sie eine der unterstützten Regionen.LOCATION Standorte anzeigenus-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
: die Kennzeichnung für den VorgangOPERATION_ID
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Führen Sie folgenden Befehl aus:
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)
Führen Sie folgenden Befehl aus:
$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 ContentSie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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 " } }
Nach der Aktualisierung sind alle URIs für vorhandene (und zukünftige) Eingabeendpunkte in der Region interne IP-Adressen, die im angegebenen VPC-Netzwerk reserviert wurden. Listen Sie die Eingabeendpunkte auf, um die aktualisierten URIs zu sehen.
Zum öffentlichen Pool wechseln
Wenn Sie zum öffentlichen Pool zurückkehren möchten, geben Sie in der Aktualisierungsanfrage für den Pool einen leeren String als Namen des Peer-Netzwerks an.
Ersetzen Sie diese Werte in den folgenden Anfragedaten:
: Die Projektnummer Ihres Google Cloud . Sie finden sie auf der Seite IAM-Einstellungen im Feld Projektnummer.PROJECT_NUMBER
: Der Speicherort des Standard-Pools. Verwenden Sie eine der unterstützten Regionen.LOCATION Standorte anzeigenus-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
Wenn Sie die Anfrage senden möchten, maximieren Sie eine der folgenden Optionen:
curl (Linux, macOS oder Cloud Shell)
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
cat > request.json << 'EOF' { "networkConfig": { "peeredNetwork": "" } } EOF
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
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)
Speichern Sie den Anfragetext in einer Datei mit dem Namen request.json
.
Führen Sie folgenden Befehl im Terminal aus, um diese Datei im aktuellen Verzeichnis zu erstellen oder zu überschreiben:
@' { "networkConfig": { "peeredNetwork": "" } } '@ | Out-File -FilePath request.json -Encoding utf8
Führen Sie dann folgenden Befehl aus, um Ihre REST-Anfrage zu senden:
$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
Sie sollten eine JSON-Antwort ähnlich wie diese erhalten:
{ "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 }
Sie können noch einmal die Methode projects.locations.operations.get
verwenden, um zu prüfen, ob die Aktualisierung abgeschlossen wurde.