Netzwerk und Subnetzwerk angeben

Auf dieser Seite wird erläutert, wie Sie beim Ausführen von Dataflow-Jobs ein Netzwerk und ein Subnetzwerk angeben.

VPC und freigegebene VPC

Ein VPC-Netzwerk, manchmal auch nur als Netzwerk bezeichnet, bietet die Konnektivität für Ressourcen in einem Projekt. Weitere Informationen zu VPC-Netzwerken finden Sie in der Übersicht zu VPC-Netzwerken.

Ein freigegebenes VPC-Netzwerk ist ein Netzwerk, das sich innerhalb Ihrer Organisation in einem separaten Projekt befindet, das als Hostprojekt bezeichnet wird. Wenn ein Administrator für freigegebene VPCs Sie als Dienstprojektadministrator festgelegt hat, sind Sie berechtigt, einige der Subnetzwerke in Netzwerken des Hostprojekts zu nutzen. Weitere Hintergrundinformationen zur freigegebenen VPC finden Sie unter Übersicht zu freigegebenen VPC-Netzwerken.

VPC Service Controls

VPC Service Controls von Dataflow bietet zusätzliche Sicherheit für die Ressourcen und Dienste Ihrer Pipeline. Weitere Informationen zu VPC Service Controls finden Sie in der Übersicht zu VPC Service Controls.

Welche Einschränkungen sich bei Verwendung von Dataflow mit VPC Service Controls ergeben, erfahren Sie unter Unterstützte Produkte und Einschränkungen.

Netzwerk und Subnetzwerk angeben

Wenn Sie einen Dataflow-Job erstellen, können Sie entweder ein Netzwerk oder ein Subnetzwerk angeben. In den folgenden Abschnitten wird beschrieben, wann Sie die einzelnen Parameter verwenden sollten.

Wenn Sie sowohl die Subnetzwerk- als auch die Netzwerkparameter weglassen, geht Google Cloud davon aus, dass Sie ein VPC-Netzwerk im automatischen Modus mit dem Namen default verwenden möchten. Wenn Sie sowohl die Subnetzwerk- als auch die Netzwerkparameter weglassen und in Ihrem Projekt kein Netzwerk mit dem Namen default vorhanden ist, erhalten Sie eine Fehlermeldung.

Netzwerkparameter

Sie können den Netzwerkparameter verwenden, um ein Netzwerk im automatischen Modus in Ihrem Projekt anzugeben.

Geben Sie ein Netzwerk nur mit seinem Namen und nicht der vollständigen URL an.

Sie können den Netzwerkparameter auch verwenden, um ein freigegebenes VPC-Netzwerk nur dann auszuwählen, wenn diese beiden Bedingungen erfüllt sind:

  • Das ausgewählte freigegebene VPC-Netzwerk ist ein Netzwerk im automatischen Modus.
  • Sie sind ein Dienstprojektadministrator mit Berechtigungen auf Projektebene für das gesamte freigegebene VPC-Hostprojekt. Dies bedeutet, dass der Administrator einer freigegebenen VPC Ihnen die Rolle "Netzwerknutzer" für das gesamte Hostprojekt gewährt hat. Damit können Sie alle seine Netzwerke und Subnetzwerke verwenden.

In allen anderen Fällen müssen Sie ein Subnetzwerk angeben.

Subnetzwerkparameter

Wenn Sie ein bestimmtes Subnetzwerk in einem Netzwerk auswählen müssen, geben Sie den Parameter subnetwork an. Das Subnetz muss sich in derselben Region befinden wie die Zone, in der die Dataflow-Worker ausgeführt werden. Beispielsweise müssen Sie den Subnetzwerkparameter in diesen Situationen angeben:

  • Das von Ihnen benötigte Subnetzwerk befindet sich in einem Netzwerk mit benutzerdefiniertem Modus.
  • Sie sind ein Dienstprojektadministrator mit Berechtigungen auf Subnetzebene für ein bestimmtes Subnetzwerk in einem freigegebenen VPC-Hostprojekt.

Sie können ein Subnetzwerk mit einer vollständigen URL oder mit einem abgekürzten Pfad angeben. Wenn sich das Subnetzwerk in einem freigegebenen VPC-Netzwerk befindet, müssen Sie die vollständige URL verwenden.

  • Vollständige URL:
    https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNETWORK
  • Kurzform:
    regions/REGION/subnetworks/SUBNETWORK

Dabei gilt:

  • HOST_PROJECT_ID ist die ID des Hostprojekts
  • REGION ist der regionale Endpunkt Ihres Dataflow-Jobs
  • SUBNETWORK ist der Name Ihres Compute Engine-Subnetzwerks

Wenn Sie ein subnetwork angeben, wählt Dataflow das network für Sie aus. Bei Angabe eines subnetwork können Sie den Parameter network daher weglassen.

Die Größe des Subnetzwerks beschränkt die Anzahl der Instanzen nur durch die Anzahl der verfügbaren IP-Adressen. Diese Größe hat keine Auswirkungen auf die Leistung der VPC Service Controls von Dataflow.

Öffentlicher IP-Parameter

Der öffentliche IP-Parameter gibt für den Dataflow-Dienst an, ob Dataflow-Worker öffentliche IP-Adressen erhalten sollen. Standardmäßig weist der Dataflow-Dienst für Worker sowohl öffentliche als auch private IP-Adressen zu. Wenn Sie öffentliche IP-Adressen deaktivieren, kann die Dataflow-Pipeline nur auf Ressourcen an folgenden Orten zugreifen:

Bei deaktivierten öffentlichen IP-Adressen können Sie weiterhin Verwaltungs- und Überwachungsaufgaben ausführen. Wenn Sie auf Ihre Worker zugreifen möchten, verwenden Sie SSH über die oben aufgeführten Optionen. Die Pipeline kann jedoch nicht auf das Internet und andere Google Cloud-Netzwerke zugreifen und Internethosts haben keinen Zugriff auf Ihre Dataflow-Worker.

Durch Deaktivierung öffentlicher IP-Adressen können Sie die Sicherheit der Infrastruktur Ihrer Datenverarbeitung erhöhen. Wenn Sie keine öffentlichen IP-Adressen für Ihre Dataflow-Worker verwenden, senken Sie damit auch die Anzahl der öffentlichen IP-Adressen, die Sie im Rahmen Ihres Google Cloud-Projektkontingents nutzen.

Wenn Sie öffentliche IP-Adressen deaktivieren, können Ihre Dataflow-Jobs nicht auf APIs und Dienste außerhalb von Google Cloud zugreifen, die Internetzugang benötigen. Informationen zum Einrichten des Internetzugriffs für Jobs mit privaten IP-Adressen finden Sie unter Internetzugang für Dataflow.

JAVA

So deaktivieren Sie öffentliche IP-Adressen:

  1. Aktivieren Sie Privaten Google-Zugriff für Ihr Netzwerk oder Subnetzwerk.
  2. Legen Sie für die Parameter Ihres Dataflow-Jobs --usePublicIps=false und --network=NETWORK oder --subnetwork=SUBNETWORK fest.

PYTHON

So deaktivieren Sie öffentliche IP-Adressen:

  1. Implementieren Sie alle Python-Paketabhängigkeiten gemäß der Anleitung zu den Apache Beam-Pipelineabhängigkeiten.
  2. Aktivieren Sie Privaten Google-Zugriff für Ihr Netzwerk oder Subnetzwerk.
  3. Legen Sie für die Parameter Ihres Dataflow-Jobs --no_use_public_ips und --network=NETWORK oder --subnetwork=SUBNETWORK fest.

Shared VPC

Achten Sie beim Festlegen der Subnetzwerk-URL darauf, dass HOST_PROJECT_ID das Projekt ist, in dem die VPC gehostet wird.

Stellen Sie außerdem sicher, dass sowohl das Dataflow-Dienstkonto als auch das Controller-Dienstkonto über die IAM-Berechtigung „Compute-Netzwerknutzer“ verfügen, die für das verwendete Subnetz zugewiesen ist.

Pipeline mit dem angegebenen Netzwerk und Subnetzwerk angeben

Die folgenden Beispiele zeigen, wie Sie Ihre Pipeline im Dataflow-Dienst mit den angegebenen Parametern network und subnetwork ausführen.

Als Dienstprojektadministrator, der nur die Berechtigung zur Verwendung bestimmter Subnetzwerke in einem freigegebenen VPC-Netzwerk hat, müssen Sie den Parameter subnetwork zusammen mit einem Subnetzwerk angeben, zu dessen Verwendung Sie berechtigt sind.

Mit der Befehlszeile

Das folgende Beispiel zeigt, wie Sie Ihre Pipeline über die Befehlszeile ausführen und dabei das Subnetzwerk angeben. Durch Angabe des Subnetzwerks wird implizit das Netzwerk angegeben.

JAVA

mvn compile exec:java \
  -Dexec.mainClass=com.example.WordCount \
  -Dexec.args="--project=my-cloud-project \
    --stagingLocation=gs://my-wordcount-storage-bucket/staging/ \
    --output=gs://my-wordcount-storage-bucket/output \
    --runner=DataflowRunner \
    --subnetwork=https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

PYTHON

python -m apache_beam.examples.wordcount \
  --project my-cloud-project \
  --runner DataflowRunner \
  --staging_location gs://my-wordcount-storage-bucket/staging \
  --temp_location gs://my-wordcount-storage-bucket/temp \
  --output gs://my-wordcount-storage-bucket/output \
  --subnetwork https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

REST API verwenden

Das folgende Beispiel zeigt, wie Sie eine Vorlage ausführen und ein Subnetzwerk angeben. Durch Angabe des Subnetzwerks wird implizit das Netzwerk angegeben.

Wenn Sie eine Dataflow-Vorlage ausführen und dafür die REST API verwenden, fügen Sie network und/oder subnetwork zum Objekt environment hinzu. Beispiel:

POST https://dataflow.googleapis.com/v1b3/projects/[YOUR_PROJECT_ID]/templates:launch?gcsPath=gs://dataflow-templates/wordcount/template_file
{
    "jobName": "my_job",
    "parameters": {
       "inputFile" : "gs://dataflow-samples/shakespeare/kinglear.txt",
       "output": "gs://my-wordcount-storage-bucket/output"
    },
    "environment": {
       "tempLocation": "gs://my-wordcount-storage-bucket/temp",
       "subnetwork": "https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork",
       "zone": "us-central1-f"
    }
}