Résoudre les problèmes de mise en réseau Dataflow

Cette page explique comment résoudre les problèmes liés à la mise en réseau Dataflow.

Pour en savoir plus sur la configuration de la mise en réseau de vos jobs Dataflow, consultez les pages Configurer l'accès à Internet et les règles de pare-feu et Spécifier un réseau et un sous-réseau.

L'interface réseau doit spécifier un sous-réseau si la ressource réseau est en mode de sous-réseau personnalisé

L'erreur suivante se produit lorsque vous exécutez un job Dataflow :

Workflow failed. Causes: Invalid Error: Message: Invalid value for field
'resource.properties.networkInterfaces[0].subnetwork': ''. Network interface
must specify a subnet if the network resource is in custom subnet mode. HTTP
Code: 400

Ce problème se produit si le réseau VPC nommé default a été converti d'un réseau VPC en mode automatique vers un réseau VPC en mode personnalisé.

Pour résoudre ce problème, spécifiez le paramètre de sous-réseau lorsque vous utilisez un réseau VPC en mode personnalisé. Pour plus d'informations, consultez la section Spécifier un réseau et un sous-réseau.

Impossible de créer PoolableConnectionFactory

L'erreur suivante se produit lorsque votre job Dataflow doit se connecter à une base de données externe :

java.sql.SQLException: Cannot create PoolableConnectionFactory
(The connection attempt failed.)

Ce problème survient lorsque le nœud de calcul Dataflow ne peut pas établir de connexion avec le serveur de base de données, souvent en raison d'une règle de sortie ou d'un pare-feu.

Pour identifier la cause première de ce problème, créez et exécutez l'outil Tests de connectivité. L'outil Tests de connectivité peut vous aider à identifier les endroits où le trafic est bloqué.

Pour mettre à jour vos règles de sortie, consultez la page Exemple de règle de sortie de pare-feu.

Les références inter-projets pour cette ressource ne sont pas autorisées

L'erreur suivante se produit lorsque vous exécutez un job Dataflow sur un réseau VPC partagé :

Invalid value for field 'resource.properties.networkInterfaces[0].subnetwork':
'https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNETWORK'.
Cross-project references for this resource are not allowed.

Ce problème se produit si vous spécifiez un sous-réseau dans un réseau VPC partagé, mais que le projet de service n'est pas associé au projet hôte de VPC partagé.

Pour résoudre ce problème, un administrateur de VPC partagé doit associer le projet de service au projet hôte.

L'instance doit se trouver dans la même région que le sous-réseau.

L'erreur suivante se produit lorsque vous exécutez un job Dataflow avec un sous-réseau spécifié :

Failed to start the VM, launcher-ID, used for launching because of status code: INVALID_ARGUMENT, reason: Invalid Error:
Message: Invalid value for field 'resource.networkInterfaces[0].subnetwork': 'https://www.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/subnetworks/SUBNETWORK'. Instance must be in the same region as the subnetwork.
HTTP Code: 400.

Ce problème se produit lorsque votre tâche et le sous-réseau spécifié dans votre tâche se trouvent dans des régions différentes.

Pour résoudre ce problème, exécutez votre tâche dans la région où se trouve votre sous-réseau. Par exemple, si votre sous-réseau se trouve dans us-central1, exécutez votre tâche dans la région us-central1.

Réseau inaccessible

L'erreur suivante se produit lorsque les adresses IP publiques sont désactivées et que vous essayez d'exécuter un job Dataflow :

NewConnectionError(''<pip._vendor.urllib3.connection.HTTPSConnection  object at ID>:
Failed to establish a new connection: [Errno 101] Network is unreachable

Ce problème survient, car la configuration de votre pipeline n'autorise pas les connexions aux adresses IP externes, mais il doit se connecter à une adresse IP externe pour s'exécuter. Les options de pipeline suivantes désactivent les connexions IP externes :

Java

--usePublicIps=false

Python

--no_use_public_ips=true

Go

--no_use_public_ips=true

API

options = PipelineOptions(use_public_ips=False)

Pour identifier l'emplacement où le trafic est bloqué, créez et exécutez l'outil Tests de connectivité.

Pour résoudre ce problème sans autoriser les connexions aux adresses IP externes, effectuez une ou plusieurs des modifications suivantes.

Pour en savoir plus sur la configuration de l'accès Internet pour Dataflow, consultez la page Accès Internet pour Dataflow.

Le réseau ou le sous-réseau n'est pas accessible au compte de service Dataflow ou n'existe pas

L'une des erreurs suivantes se produit lorsque vous essayez d'exécuter un job Dataflow. Le job échoue.

Workflow failed. Causes: Network default is not accessible to Dataflow Service
account or does not exist
Workflow failed. Causes: Subnetwork SUBNETWORK is not
accessible to Dataflow Service account or does not exist

Le problème peut survenir pour les raisons suivantes :

  • Vous omettez les paramètres de sous-réseau et de réseau lorsque vous créez le job Dataflow, mais il n'existe pas de réseau VPC en mode automatique nommé default dans votre projet. Il est possible que vous ne disposiez pas d'un réseau par défaut si le réseau par défaut a été supprimé ou si une contrainte de règle d'administration vous empêche de créer un réseau par défaut.
  • Le sous-réseau est manquant.
  • Le paramètre de sous-réseau n'est pas spécifié correctement.
  • Les autorisations requises pour le compte de service Dataflow sont manquantes.
  • Si vous utilisez un VPC partagé, la valeur du projet hôte doit correspondre au projet dans lequel le VPC est hébergé. Pour en savoir plus sur le VPC partagé, consultez la Présentation du VPC partagé.

Pour résoudre ce problème, suivez les instructions de spécification d'un réseau et d'un sous-réseau.

Le RPC a expiré ou n'a pas pu se connecter sur les ports 12345 ou 12346

L'une des erreurs suivantes se produit lorsque vous exécutez un job Dataflow qui n'utilise pas Streaming Engine ou Dataflow Shuffle. Le job se bloque ou échoue.

Pour les jobs traités par flux :

Rpc to WORKER_HARNESS:12345 completed with error
UNAVAILABLE: failed to connect to all addresses; last error : UNKNOWN:
ipv4:WORKER_IP_ADDRESS:12345: Failed to connect to remote
host: FD Shutdown

Pour les jobs par lot :

(g)RPC timed out when SOURCE_WORKER_HARNESS talking to
DESTINATION_WORKER_HARNESS:12346.

Ce problème se produit si une règle de pare-feu autorisant le trafic réseau sur les ports TCP 12345 et 12346 est manquante. Lorsque le job utilise plusieurs nœuds de calcul, ceux-ci ne peuvent pas communiquer entre eux.

Pour résoudre ce problème, consultez les étapes de dépannage de la section DEADLINE_EXCEEDED ou absence de réponse serveur.

Un nœud de calcul unique est démarré et arrêté plusieurs fois

Le problème suivant se produit lorsque vous lancez un job Dataflow. Sur la page Métriques du job du job Dataflow, le graphique Utilisation du processeur (tous les nœuds de calcul) indique qu'un nœud de calcul est démarré, puis arrêté à plusieurs reprises après quelques minutes. Un seul nœud de calcul est disponible à la fois.

Graphique d&#39;utilisation du processeur montrant qu&#39;un nœud de calcul à la fois est créé, puis arrêté à plusieurs reprises.

L'erreur suivante se produit :

The Dataflow job appears to be stuck because no worker activity has been seen
in the last 1h. Please check the worker logs in Stackdriver Logging.

Aucun journal de nœud de calcul n'est créé.

Dans les journaux des jobs, plusieurs messages semblables à l'exemple suivant peuvent s'afficher :

Autoscaling: Raised the number of workers to 1 based on the rate of progress in
the currently running stage(s).

Ce problème se produit si le réseau VPC ne dispose pas de route par défaut vers Internet et d'une route par défaut vers le sous-réseau.

Pour résoudre ce problème, ajoutez des routes par défaut à votre réseau VPC. Pour en savoir plus, consultez la section Accès à Internet pour Dataflow.

Le sous-réseau ne dispose pas de l'Accès privé à Google

L'erreur suivante se produit lorsque vous lancez un job Dataflow dans laquelle les adresses IP externes sont désactivées :

Workflow failed. Causes: Subnetwork SUBNETWORK on project
PROJECT_ID network NETWORK in
region REGION does not have Private Google Access, which
is required for usage of private IP addresses by the Dataflow workers.

Ce problème se produit si vous désactivez les adresses IP externes sans activer l'Accès privé à Google.

Pour résoudre ce problème, activez l'Accès privé à Google pour le sous-réseau utilisé par le job Dataflow.

Impossible de créer Dataflow avec une plage d'adresses IP spécifiée

Dataflow n'accepte pas l'attribution d'une plage d'adresses IP statiques aux VM de nœud de calcul. Pour contourner ce problème, vous pouvez créer un sous-réseau avec une plage d'adresses IP spécifique et déployer le job Dataflow dans ce sous-réseau.

Pour plus d'informations sur l'utilisation des sous-réseaux avec Dataflow, consultez la page Spécifier un réseau et un sous-réseau.

Pour en savoir plus sur la configuration des plages d'adresses IP dans les sous-réseaux, consultez la section Configurer des plages d'adresses IP d'alias.

Pour exécuter votre pipeline dans le sous-réseau, consultez la section Exécuter votre pipeline avec le sous-réseau spécifié.

Vous devrez peut-être également créer une règle NAT et un routeur. Pour en savoir plus, consultez Cloud NAT.

Étapes suivantes

Pour obtenir des instructions de dépannage supplémentaires concernant le réseau, consultez Résoudre les problèmes de connectivité interne entre les VM.