Spécifier un réseau et un sous-réseau

Ce document explique comment spécifier un réseau, un sous-réseau ou les deux options lorsque vous exécutez des tâches Dataflow.

Ce document part du principe que vous savez comment créer des réseaux et des sous-réseaux Google Cloud. Vous devez également connaître les termes liés au réseau décrits dans la section suivante.

Terminologie associée au réseau Google Cloud

  • Réseau VPC. Un réseau VPC, parfois simplement appelé réseau, assure la connectivité des ressources d'un projet.

    Pour en savoir plus sur le VPC, consultez la page Présentation du réseau VPC.

  • Réseau VPC partagé. Un réseau VPC partagé est un réseau existant dans un projet distinct, appelé projet hôte, au sein de votre organisation. Si un administrateur de VPC partagé vous a accordé le rôle d'administrateur de projet de service, vous êtes autorisé à utiliser au moins certains des sous-réseaux situés dans les réseaux du projet hôte.

    Pour en savoir plus sur le VPC partagé, consultez la Présentation du VPC partagé.

  • VPC Service Controls Les outils VPC Service Controls de Dataflow vous aident à sécuriser les ressources et les services de votre pipeline.

    Pour en savoir plus sur VPC Service Controls, consultez la page Présentation de VPC Service Controls. Pour en savoir plus sur les limites liées à l'utilisation de Dataflow avec VPC Service Controls, consultez la page Produits compatibles et limites.

Réseau et sous-réseau pour une tâche Dataflow

Lorsque vous créez une tâche Dataflow, vous pouvez spécifier un réseau, un sous-réseau ou les deux.

Tenez compte des consignes suivantes :

  • Si vous ne savez pas quel paramètre utiliser, spécifiez uniquement le paramètre de sous-réseau. Le paramètre réseau est alors spécifié implicitement pour vous.

  • Si vous omettez les paramètres de sous-réseau et de réseau, Google Cloud part du principe que vous avez l'intention d'utiliser un réseau VPC en mode automatique nommé default.

  • Si vous omettez les paramètres de sous-réseau et de réseau et qu'il n'existe pas de réseau nommé default dans votre projet, une erreur vous est renvoyée.

Consignes pour la spécification d'un paramètre de réseau

  • Vous pouvez sélectionner un réseau en mode automatique dans votre projet avec le paramètre de réseau.

  • Vous pouvez spécifier un réseau en n'utilisant que son nom, et non l'URL complète.

  • Vous pouvez également utiliser le paramètre réseau pour sélectionner un réseau VPC partagé uniquement si les deux conditions suivantes sont remplies :

    • Le réseau VPC partagé que vous sélectionnez est un réseau en mode automatique.

    • Vous êtes administrateur du projet de service disposant d'autorisations au niveau du projet pour l'ensemble du projet hôte de VPC partagé. Cela signifie qu'un administrateur VPC partagé vous a attribué le rôle Utilisateur de réseau Compute pour l'ensemble du projet hôte, vous permettant ainsi d'utiliser tous ses réseaux et sous-réseaux.

  • Dans tous les autres cas, vous devez spécifier un sous-réseau.

Consignes pour la spécification d'un paramètre de sous-réseau

  • Si vous spécifiez un sous-réseau, Cloud Dataflow choisit le réseau pour vous. Par conséquent, lorsque vous spécifiez un sous-réseau vous pouvez omettre le paramètre de réseau.

  • Pour sélectionner un sous-réseau spécifique dans un réseau, utilisez le paramètre de sous-réseau.

  • Spécifiez un sous-réseau à l'aide d'une URL complète ou d'un chemin d'accès abrégé.

  • Vous devez sélectionner un sous-réseau situé dans la même région que la zone dans laquelle vous exécutez vos nœuds de calcul Dataflow. Par exemple, vous devez spécifier le paramètre de sous-réseau dans les situations suivantes :

    • Le sous-réseau que vous spécifiez se trouve dans un réseau en mode personnalisé.

    • Vous êtes un administrateur de projet de service doté d'autorisations au niveau du sous-réseau pour un sous-réseau spécifique dans un projet hôte de VPC partagé.

  • La taille de sous-réseau limite uniquement le nombre d'instances selon le nombre d'adresses IP disponibles. Cette taille n'a pas d'incidence sur les performances de Dataflow VPC Service Controls.

Consignes pour la spécification d'un paramètre de sous-réseau pour le VPC partagé

  • Lorsque vous spécifiez l'URL du sous-réseau pour le VPC partagé, assurez-vous que HOST_PROJECT_ID est bien le projet dans lequel le VPC est hébergé.

  • Si le sous-réseau est situé sur un réseau VPC partagé, vous devez utiliser l'URL complète.

  • Assurez-vous que le compte d'utilisateur de réseau Compute est attribué au compte de service Dataflow et au compte de service de nœud de calcul sur le sous-réseau spécifié. Si vous n'activez pas le rôle, le message d'erreur suivant s'affiche : Error: Message: Required 'compute.subnetworks.get' permission.

Exemples de spécifications de réseau et de sous-réseau

Voici un exemple d'URL complète qui spécifie un sous-réseau :

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

Remplacez les éléments suivants :

  • HOST_PROJECT_ID : ID du projet hôte
  • REGION_NAME : point de terminaison régional de votre tâche Dataflow
  • SUBNETWORK_NAME : nom de votre sous-réseau Compute Engine

Voici un exemple d'URL, où l'ID du projet hôte est my-cloud-project, la région est us-central1 et le nom du sous-réseau est mysubnetwork :

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

Voici un exemple de version abrégée qui spécifie un sous-réseau :

regions/`REGION_NAME`/subnetworks/`SUBNETWORK_NAME`

Remplacez les éléments suivants :

Exécutez votre pipeline avec les champs network et subnetwork spécifiés.

Si vous êtes un administrateur de projet de service autorisé à n'utiliser que des sous-réseaux spécifiques dans un réseau VPC partagé, vous devez renseigner le paramètre subnetwork avec le nom d'un sous-réseau que vous êtes autorisé à utiliser.

L'exemple suivant montre comment exécuter votre pipeline depuis la ligne de commande ou à l'aide de l'API REST. L'exemple indique un sous-réseau. Vous pouvez également spécifier le réseau.

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

Si vous exécutez un modèle Dataflow à l'aide de l'API REST, ajoutez un attribut network ou subnetwork, ou les deux, à environment.

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

Désactiver une adresse IP externe

Pour désactiver une adresse IP externe, consultez la section Configurer les règles d'accès à Internet et de pare-feu.