Ошибка тайм-аута при подключении потока данных Google к хранилищу памяти Google: проверены конфигурации сети и брандмауэPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка тайм-аута при подключении потока данных Google к хранилищу памяти Google: проверены конфигурации сети и брандмауэ

Сообщение Anonymous »


Привет, сообщество Stack Overflow!

Я столкнулся с проблемой при подключении Google Dataflow к Google Memorystore (Redis) и буду признателен за любые идеи и предложения. Несмотря на подтверждение конфигурации сети и правил брандмауэра, мои задания Dataflow не могут установить соединение с Memorystore, что приводит к ошибке тайм-аута. Окружающая среда

Google Cloud Dataflow для обработки данных Google Memorystore (Redis) для кэширования и хранения данных Обе службы находятся в одной сети и подсети VPC. Использование Python с Apache Beam для задания потока данных. Проблема

Задание Dataflow постоянно завершается сбоем из-за ошибки тайм-аута при попытке подключения к Memorystore:

открытый текст

ОШИБКА: root: Ошибка подключения к Redis: тайм-аут подключения к серверу ОШИБКА: root: Неустранимая ошибка в основном выполнении: тайм-аут подключения к серверу

Конфигурация сети

Я установил правило брандмауэра, разрешающее выход из потока данных в хранилище памяти через порт 6379 (TCP) для Redis. Особенности правила: JSON { "допустимый": [ { «IPПротокол»: «TCP», "порты": ["6379"] } ], "Диапазоны назначения": [ "10.146.99.251", «10.146.99.251/32», "10.146.99.248/29" ], ...

Пиринговая сеть между VPC Dataflow и Memorystore настроена и активна:

открытый текст

Пиринговая сеть VPC: default-redis-e619463a-57d4-4053-a70d-b8c275ad4d49 Тип IP-стека: IPv4 Обмен маршрутами подсети с общедоступным IPv4: импорт и экспорт Конфигурация задания потока данных

Вот фрагмент команды задания потока данных:

оболочка

python -m bq2_pipeline.redis_pipeline
--runner DataflowRunner
--project datapuller-399301
--region us-central1
--temp_location gs://bq_to_redis_with_beam/temp/
--network project/datapuller-399301/global/networks/default
--subnetwork регионы/us-central1/subnetworks/default
...

Скрипт Python для подключения к Redis

Питон

импортировать Redis журнал импорта

REDIS_HOST = '10.146.99.251' REDIS_PORT = 6379 REDIS_TIMEOUT = 50

def get_redis_client(): пытаться: клиент = redis.StrictRedis( хост = REDIS_HOST, порт = REDIS_PORT, дб=0, decode_responses = Правда, Socket_timeout = REDIS_TIMEOUT ) клиент.пинг() возврат клиента кроме исключения как e: logging.error(f"Ошибка подключения к Redis: {e}") поднять
Дополнительная логика тестирования конвейера и соединения...
Попытки и проверки

Проверен IP-адрес и конфигурация порта. Убедитесь, что задание потока данных выполняется в правильной сети и подсети. Увеличено значение REDIS_TIMEOUT. Конфигурации сети и пиринга кажутся правильными. Несмотря на эти проверки, проблема остается. Мне интересно:

Возможно, в конфигурации сети/брандмауэра чего-то не хватает? Может возникнуть проблема с настройкой клиента Redis в скрипте Python? Есть ли дополнительные настройки или особенности сервисов Google Cloud, которые я мог упустить из виду? Мы будем очень признательны за любые советы и подсказки по отладке. Заранее спасибо!
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»