Python ORM ‘Pony’ (ponyorm.org) выглядел как большое улучшение наших неоднородных ручных SQL-запросов. Кроме того, заставить Pony работать с App Engine / Python 2.7 не удалось. В то же время мы столкнулись с некоторыми узкими местами для App Engine и ручных запросов, связанных с пулом подключений Cloud SQL.
Как мы можем настроить Pony ORM для подключения к Google Cloud SQL при вызове облачной функции?
ORM: Драйвер Pony DB: PyMySQL
Из коробки подключение к db:
db.bind(provider='mysql', host='', user='', passwd='', db='')
host = IP не работает. Cloud Functions специально запрещает это. «Примечание. По умолчанию Cloud Functions не поддерживает подключение к экземпляру Cloud SQL с помощью TCP. Ваш код не должен пытаться получить доступ к экземпляру с помощью IP-адреса (например, 127.0.0.1 или 172.17.0.1), если вы не настроили бессерверный VPC. Доступ.»
Есть ли конфигурация, которая будет устанавливать соединение с БД?
Ответ…
1) Для учетной записи службы для облачных функций добавьте роль клиента Cloud SQL.
2) настройте ‘unix_socket =’ с именем подключения экземпляра Cloud SQL.
Тестирование unix_socket = было вдохновлено документами библиотеки Python для MySQL, но тот же флаг конфигурации работает и для PyMySQL. Это говорит о том, что MySQL-Python также будет работать; Pony поддерживает оба драйвера.