Netzwerk und Subnetzwerk angeben

In diesem Dokument wird erläutert, wie Sie beim Ausführen von Dataflow-Jobs ein Netzwerk oder ein Subnetzwerk oder beides angeben.

Für dieses Dokument müssen Sie wissen, wie Sie Google Cloud-Netzwerke und -Subnetzwerke erstellen. Außerdem müssen Sie mit den im nächsten Abschnitt beschriebenen Netzwerkbegriffen vertraut sein.

Google Cloud-Netzwerkterminologie

  • VPC-Netzwerk Ein VPC-Netzwerk, manchmal auch nur als Netzwerk bezeichnet, bietet die Konnektivität für Ressourcen in einem Projekt.

    Mehr zu VPC finden Sie unter VPC-Netzwerke.

  • Freigegebenes VPC-Netzwerk. 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 Informationen über Shared VPC finden Sie in der Shared VPC-Übersicht.

  • VPC Service Controls. Dataflow VPC Service Controls hilft Ihnen, die Ressourcen und Dienste Ihrer Pipeline zu schützen.

    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 für einen Dataflow-Job

Wenn Sie einen Dataflow-Job erstellen, können Sie entweder ein Netzwerk, ein Subnetzwerk oder beide Optionen angeben.

Beachten Sie folgende Richtlinien:

  • Wenn Sie sich nicht sicher sind, welcher Parameter verwendet werden soll, geben Sie nur den Subnetzwerkparameter an. Der Netzwerkparameter wird dann implizit für Sie angegeben.

  • Wenn Sie sowohl den Subnetzwerk- als auch den 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 den Subnetzwerk- als auch den Netzwerkparameter weglassen und in Ihrem Projekt kein Netzwerk mit dem Namen default vorhanden ist, erhalten Sie eine Fehlermeldung.

Richtlinien für die Angabe eines Netzwerkparameters

  • Sie können in Ihrem Projekt mit dem Netzwerkparameter ein Netzwerk im automatischen Modus auswählen.

  • Sie können ein Netzwerk angeben, indem Sie nur seinen Namen und nicht die vollständige URL verwenden.

  • Sie können den Netzwerkparameter auch verwenden, um ein freigegebenes VPC-Netzwerk nur dann auszuwählen, wenn die folgenden 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 Compute-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.

Richtlinien für die Angabe eines Subnetzwerkparameters

  • Wenn Sie ein Subnetzwerk angeben, wählt Dataflow das Netzwerk für Sie aus. Bei der Angabe eines Subnetzwerks können Sie daher den Netzwerkparameter weglassen.

  • Verwenden Sie den Subnetzwerkparameter, um ein bestimmtes Subnetzwerk in einem Netzwerk auszuwählen.

  • Geben Sie ein Subnetzwerk mit einer vollständigen URL oder einem abgekürzten Pfad 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 angegebene 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.

  • 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.

Richtlinien für die Angabe eines Subnetzwerkparameters für eine freigegebene VPC

  • Achten Sie beim Angeben der Subnetzwerk-URL für die freigegebene VPC darauf, dass HOST_PROJECT_ID das Projekt ist, in dem die VPC gehostet wird.

  • Wenn sich das Subnetzwerk in einem freigegebenen VPC-Netzwerk befindet, müssen Sie die vollständige URL verwenden.

  • Sorgen Sie dafür, dass sowohl dem Dataflow-Dienstkonto als auch dem Worker-Dienstkonto die Rolle Compute-Netzwerknutzer im angegebenen Subnetz zugewiesen ist. Wenn Sie die Rolle nicht aktivieren, wird die folgende Fehlermeldung angezeigt: Error: Message: Required 'compute.subnetworks.get' permission.

Beispielspezifikationen für Netzwerk und Subnetzwerk

Beispiel für eine vollständige URL, die ein Subnetzwerk angibt:

https://www.googleapis.com/compute/v1/projects/`HOST_PROJECT_ID`/regions/`REGION_NAME`/subnetworks/`SUBNETWORK_NAME`

Dabei gilt:

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

Im Folgenden finden Sie eine Beispiel-URL, bei der die Hostprojekt-ID my-cloud-project, die Region us-central1 und der Subnetzwerkname mysubnetwork lautet:

 https://www.googleapis.com/compute/v1/projects/my-cloud-project/regions/us-central1/subnetworks/mysubnetwork"

Das folgende Beispiel zeigt eine Kurzform, die ein Subnetzwerk angibt:

regions/`REGION_NAME`/subnetworks/`SUBNETWORK_NAME`

Dabei gilt:

  • REGION_NAME ist der regionale Endpunkt Ihres Dataflow-Jobs
  • SUBNETWORK_NAME ist der Name Ihres Compute Engine-Subnetzwerks

Pipeline mit Angabe von 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.

Das folgende Beispiel zeigt, wie Sie Ihre Pipeline über die Befehlszeile oder mithilfe der REST API ausführen. In diesem Beispiel wird ein Subnetzwerk angegeben. Sie können auch das Netzwerk angeben.

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

API

Wenn Sie eine Dataflow-Vorlage ausführenund dabei die REST API verwenden, fügen Sie network oder subnetwork oder beides zum environment-Objekt hinzu.

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"
    }
}

Externe IP-Adresse deaktivieren

Informationen zum Deaktivieren einer externen IP-Adresse finden Sie unter Internetzugriff und Firewallregeln konfigurieren.