Я пытаюсь подключиться к CloudSQL через конвейер python.
Фактическая ситуация
- Я могу сделать это без проблем, используяDirectRunner
- Не удается подключиться с помощью DataflowRunner
Функция подключения
def cloudSQL(input):
import pymysql
connection = pymysql.connect(host='<server ip>',
user='...',
password='...',
db='...')
cursor = connection.cursor()
cursor.execute("select ...")
connection.close()
result = cursor.fetchone()
if not (result is None):
yield input
Ошибка
Это сообщение об ошибке с использованием DataflowRunner
OperationalError: (2003, "Can't connect to MySQL server on '<server ip>' (timed out)")
CloudSQL
У меня есть publicIP (для тестирования из локального с помощьюdirectrunner) и я также пытаюсь активировать частный IP-адрес, чтобы выяснить, не может ли это быть проблемой для соединения с DataflowRunner
Option2
Я также пытался с
connection = pymysql.connect((unix_socket='/cloudsql/' + <INSTANCE_CONNECTION_NAME>,
user='...',
password='...',
db='...')
С ошибкой:
OperationalError: (2003, "Can't connect to MySQL server on 'localhost' ([Errno 2] No such file or directory)")