Resolver problemas de rede do Dataflow

Nesta página, mostramos como resolver problemas com a rede do Dataflow.

Para mais informações sobre como configurar a rede para jobs do Dataflow, consulte Configurar regras de firewall e acesso à Internet e Especificar uma rede e uma sub-rede.

A interface de rede precisará especificar uma sub-rede se o recurso de rede estiver no modo de sub-rede personalizado

O erro a seguir ocorre quando você executa um job do 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

Esse problema ocorrerá se a rede VPC chamada default tiver sido convertida de uma rede VPC de modo automático para uma rede VPC de modo personalizado.

Para resolver esse problema, especifique o parâmetro de sub-rede ao usar uma rede VPC de modo personalizado. Para mais informações, consulte Especificar uma rede e uma sub-rede.

Não é possível criar PoolableConnectionFactory

O erro a seguir ocorre quando o job do Dataflow precisa se conectar a um banco de dados externo:

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

Esse problema ocorre quando o worker do Dataflow não consegue estabelecer uma conexão com o servidor de banco de dados, geralmente devido a uma regra de saída ou um firewall.

Para identificar a causa raiz desse problema, crie e execute Testes de conectividade. Os Testes de conectividade podem ajudar você a identificar onde o tráfego está bloqueado.

Para atualizar as regras de saída, consulte Exemplo de regra de saída de firewall.

Não são permitidas referências entre projetos para esse recurso

O erro a seguir ocorre quando você executa um job do Dataflow em uma rede VPC compartilhada:

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.

Esse problema ocorre se você especificar uma sub-rede em uma rede VPC compartilhada, mas o projeto de serviço não estiver anexado ao projeto host da VPC compartilhada.

Para resolver esse problema, um administrador da VPC compartilhada precisa anexar o projeto de serviço ao projeto host.

A instância precisa estar na mesma região que a sub-rede

O erro a seguir ocorre quando você executa um job do Dataflow com uma subrede especificada:

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.

Esse problema ocorre quando o job e a sub-rede especificada nele estão em regiões diferentes.

Para resolver esse problema, execute o job na região em que a sub-rede está. Por exemplo, se a sub-rede estiver em us-central1, execute o job na região us-central1.

A rede está inacessível

O erro a seguir ocorre quando você tem IPs públicos desativados e tenta executar um job do Dataflow:

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

Esse problema ocorre porque a configuração do pipeline não permite conexões com endereços IP externos, mas o pipeline precisa se conectar a um IP externo para ser executado. As seguintes opções de pipeline desativam conexões de IP externos:

Java

--usePublicIps=false

Python

--no_use_public_ips=true

Go

--no_use_public_ips=true

API

options = PipelineOptions(use_public_ips=False)

Para identificar onde o tráfego está bloqueado, crie e execute Testes de conectividade.

Para resolver esse problema sem permitir conexões com endereços IP externos, faça uma ou mais das seguintes alterações.

Para mais informações sobre como configurar o acesso à Internet para o Dataflow, consulte Acesso à Internet para o Dataflow.

A rede ou sub-rede não está acessível para a conta de serviço do Dataflow ou não existe

Um dos erros a seguir ocorre quando você tenta executar um job do Dataflow. O job falha.

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

Este problema pode ocorrer pelos seguintes motivos:

  • Você omite os parâmetros de sub-rede e rede ao criar o job do Dataflow, mas não existe uma rede VPC de modo automático chamada default no seu projeto. Talvez você não tenha uma rede padrão se ela tiver sido excluída ou se uma restrição da política da organização impedir a criação de uma rede padrão.
  • A sub-rede não existe.
  • O parâmetro de sub-rede foi especificado incorretamente.
  • Não existem as permissões necessárias para a conta de serviço do Dataflow.
  • Se você estiver usando uma VPC compartilhada, o valor do projeto host precisará ser o projeto em que a VPC está hospedada. Para saber mais sobre VPC compartilhada, acesse Visão geral da VPC compartilhada.

Para resolver esse problema, siga as diretrizes para especificar uma rede e uma sub-rede.

A RPC expirou ou falhou ao se conectar nas portas 12345 ou 12346

Um dos erros a seguir ocorre ao executar um job do Dataflow que não usa o Streaming Engine ou o Dataflow Shuffle. O job fica travado ou falha.

Para jobs de streaming:

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

Para jobs em lote:

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

Esse problema ocorrerá se não existir uma regra de firewall que permita o tráfego de rede nas portas TCP 12345 e 12346. Quando o job usa vários workers, eles não podem se comunicar uns com os outros.

Para resolver esse problema, consulte as etapas de solução de problemas em DEADLINE_EXCEEDED ou servidor sem resposta.

Um único worker é iniciado e interrompido repetidamente

O problema a seguir ocorre quando você inicia um job do Dataflow. Na página Métricas do job do Dataflow, o gráfico Utilização da CPU (todos os workers) mostra que um worker é iniciado repetidamente e, em seguida, interrompido após alguns minutos. Apenas um worker fica disponível por vez.

Gráfico de utilização da CPU mostrando que um só worker por vez é criado repetidamente e depois interrompido.

O seguinte erro ocorre:

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.

Nenhum registro de worker é criado.

Nos registros dos jobs, várias mensagens semelhantes a esta podem aparecer:

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

Esse problema ocorrerá se a rede VPC não tiver uma rota padrão para a Internet e uma rota padrão para a sub-rede.

Para resolver esse problema, adicione rotas padrão à sua rede VPC. Para mais informações, consulte Acesso à Internet para o Dataflow.

A sub-rede não tem o Acesso privado do Google

O erro a seguir ocorre quando você inicia um job do Dataflow em que endereços IP externos estão desativados:

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.

Esse problema ocorre quando você desativa os endereços IP externos sem ativar o Acesso privado do Google.

Para resolver esse problema, ative o Acesso privado do Google para a sub-rede que o job do Dataflow usa.

Não foi possível criar o Dataflow com um intervalo de IP especificado

O Dataflow não é compatível com a atribuição de um intervalo de IP estático às VMs de worker. Como solução alternativa, você pode criar uma sub-rede com um intervalo de endereços IP específico e implantar o job do Dataflow nessa sub-rede.

Para mais informações sobre o uso de sub-redes com o Dataflow, consulte Especificar uma rede e uma sub-rede.

Para informações sobre a configuração de intervalos de IP em sub-redes, consulte Configurar intervalos de IP do alias.

Para executar o pipeline na sub-rede, consulte Executar o pipeline com a sub-rede especificada.

Talvez também seja necessário criar uma regra NAT e um roteador. Para mais informações, consulte Cloud NAT.

A seguir

Para mais etapas de solução de problemas de rede, consulte Resolver problemas de conectividade interna entre VMs.