GCP: можно ли использовать Pony ORM с облачными функциями и Cloud SQL

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. Доступ.»

Есть ли конфигурация, которая будет устанавливать соединение с БД?

См. также:  Забавные персонажи до и в конце журналов с помощью Google Cloud Winston Logging (Nodejs)
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 1
  1. Matthew Dunn

    Ответ…
    1) Для учетной записи службы для облачных функций добавьте роль клиента Cloud SQL.
    2) настройте ‘unix_socket =’ с именем подключения экземпляра Cloud SQL.

        db.bind(provider='mysql',unix_socket='/cloudsql/my-project:us-central1:my-project-sql',...
    

    Тестирование unix_socket = было вдохновлено документами библиотеки Python для MySQL, но тот же флаг конфигурации работает и для PyMySQL. Это говорит о том, что MySQL-Python также будет работать; Pony поддерживает оба драйвера.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: