Risolvere i problemi di rete di Dataflow

Questa pagina mostra come risolvere i problemi di rete di Dataflow.

Per ulteriori informazioni sulla configurazione della rete per i job Dataflow, consulta Configurare l'accesso a internet e le regole del firewall e Specificare una rete e una sottorete.

L'interfaccia di rete deve specificare una subnet se la risorsa di rete è in modalità subnet personalizzata

Quando esegui un job Dataflow, si verifica il seguente errore:

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

Questo problema si verifica se la rete VPC denominata default è stata convertita da una rete VPC in modalità automatica a una rete VPC in modalità personalizzata.

Per risolvere il problema, specifica il parametro subnet quando utilizzi una rete VPC in modalità personalizzata. Per saperne di più, consulta la sezione Specificare una rete e una sottorete.

Impossibile creare PoolableConnectionFactory

Quando il job Dataflow deve connettersi a un database esterno, si verifica il seguente errore:

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

Questo problema si verifica quando il worker di Dataflow non riesce a stabilire una connessione con il server di database, spesso a causa di una regola di uscita o di un firewall.

Per identificare la causa principale del problema, crea ed esegui i test di connettività. I test di connettività possono aiutarti a identificare dove il traffico è bloccato.

Per aggiornare le regole in uscita, consulta Esempio di regola firewall in uscita.

I riferimenti tra progetti per questa risorsa non sono consentiti

Quando esegui un job Dataflow su una rete VPC condiviso, si verifica il seguente errore:

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.

Questo problema si verifica se specifichi una subnet in una rete VPC condivisa, ma il progetto di servizio non è collegato al progetto host VPC condiviso.

Per risolvere il problema, un amministratore della rete VPC condivisa deve collegare il progetto di servizio al progetto host.

L'istanza deve trovarsi nella stessa regione della sottorete

Quando esegui un job Dataflow con una sottorete specificata, si verifica il seguente errore:

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.

Questo problema si verifica quando il job e la sottorete specificata nel job si trovano in regioni diverse.

Per risolvere il problema, esegui il job nella regione in cui si trova la tua sottorete. Ad esempio, se la tua subnet si trova in us-central1, esegui il job nella regione us-central1.

La rete non è raggiungibile

Quando gli IP pubblici sono disattivati e provi a eseguire un job Dataflow, si verifica il seguente errore:

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

Questo problema si verifica perché la configurazione della pipeline non consente le connessioni agli indirizzi IP esterni, ma la pipeline deve connettersi a un IP esterno per funzionare. Le seguenti opzioni della pipeline disattivano le connessioni IP esterne:

Java

--usePublicIps=false

Python

--no_use_public_ips=true

Vai

--no_use_public_ips=true

API

options = PipelineOptions(use_public_ips=False)

Per identificare dove il traffico è bloccato, crea ed esegui test di connettività.

Per risolvere il problema senza consentire connessioni ad indirizzi IP esterni, apporta una o più delle seguenti modifiche.

Per ulteriori informazioni sulla configurazione dell'accesso a internet per Dataflow, consulta Accesso a internet per Dataflow.

La rete o la sottorete non è accessibile all'account di servizio Dataflow o non esiste

Quando provi a eseguire un job Dataflow, si verifica uno dei seguenti errori. Il job non va a buon fine.

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

Il problema può verificarsi per i seguenti motivi:

  • Ometti i parametri della subnet e della rete quando crei il job Dataflow, ma nel tuo progetto non esiste una rete VPC in modalità automatica denominata default. Potresti non avere una rete predefinita se è stata eliminata o se un vincolo dei criteri dell'organizzazione ti impedisce di crearne una.
  • La subnet non è presente.
  • Il parametro sottorete non è specificato correttamente.
  • Le autorizzazioni richieste per l'account di servizio Dataflow sono mancanti.
  • Se utilizzi un VPC condiviso, il valore del progetto host deve essere il progetto in cui è ospitato il VPC. Per scoprire di più sul VPC condiviso, consulta Panoramica del VPC condiviso.

Per risolvere il problema, segui le linee guida per la specifica di una rete e di una sottorete.

È scaduto il timeout della RPC o non è riuscita la connessione sulle porte 12345 o 12346

Quando esegui un job Dataflow che non utilizza Streaming Engine o Dataflow Shuffle, si verifica uno dei seguenti errori. Il job si blocca o non va a buon fine.

Per i job in modalità flusso:

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

Per i job batch:

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

Questo problema si verifica se manca una regola firewall che consenta il traffico di rete sulle porte TCP12345 e 12346. Quando il job utilizza più worker, questi non sono in grado di comunicare tra loro.

Per risolvere il problema, consulta i passaggi per la risoluzione dei problemi descritti in DEADLINE_EXCEEDED o Server non risponde.

Un singolo worker viene avviato e interrotto ripetutamente

Quando avvii un job Dataflow, si verifica il seguente problema. Nella pagina Metriche job del job Dataflow, il grafico Utilizzo della CPU (tutti i worker) mostra che un worker viene avviato ripetutamente e poi interrotto dopo alcuni minuti. È disponibile un solo operatore alla volta.

Grafico di utilizzo della CPU che mostra che un worker alla volta viene creato e interrotto ripetutamente.

Si verifica il seguente errore:

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.

Non vengono creati log dei worker.

Nei log dei job potrebbero essere visualizzati più messaggi simili al seguente:

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

Questo problema si verifica se la rete VPC non ha una route predefinita per internet e una route predefinita per la subnet.

Per risolvere il problema, aggiungi route predefinite alla tua rete VPC. Per ulteriori informazioni, consulta Accesso a internet per Dataflow.

La subnet non dispone dell'accesso privato Google

Quando avvii un job Dataflow in cui gli indirizzi IP esterni sono disattivati, si verifica il seguente errore:

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.

Questo problema si verifica se disattivi gli indirizzi IP esterni senza attivare l'accesso privato Google.

Per risolvere il problema, abilita l'accesso privato Google per la sottorete utilizzata dal job Dataflow.

Impossibile creare Dataflow con un intervallo IP specificato

Dataflow non supporta l'assegnazione di un intervallo IP statico alle VM worker. Come soluzione alternativa, puoi creare una subnet con un intervallo di indirizzi IP specifico e implementare il job Dataflow in quella subnet.

Per ulteriori informazioni sull'utilizzo delle subnet con Dataflow, consulta Specificare una rete e una subnet.

Per informazioni sulla configurazione degli intervalli IP nelle sottoreti, consulta Configurare intervalli IP alias.

Per eseguire la pipeline nella sottorete, consulta Eseguire la pipeline con la sottorete specificata.

Potresti anche dover creare una regola NAT e un router. Per ulteriori informazioni, consulta Cloud NAT.

Passaggi successivi

Per ulteriori passaggi per la risoluzione dei problemi di rete, consulta Risolvere i problemi di connettività interna tra le VM.