Как указать строку соединения DB_URI postgres DB с экземпляром, работающим в облаке Google Sql? - PullRequest
0 голосов
/ 11 октября 2019

Вот мой сценарий. Я настроил экземпляр Postgres DB, работающий в облаке Google SQL. Он работает и работает, и если я внесу в белый список свой локальный IP-адрес, я могу подключиться напрямую, без проблем.

Затем я развернул докер-контейнер (postGrest), который является веб-сервером, который подключается к базе данных postgres. Когда я настроил это в Google Cloud Run, у него был вариант с раскрывающимся списком, в котором я мог указать подключение к БД, и в нем сообщалось, что он за кадром настраивает прокси-сервер Cloud SQL для этого подключения.

Контейнер позволяетПеременные среды, которые нужно передать, чтобы указать, какой сервер и т. д. Одним обязательным параметром является DB_URI для экземпляра postgred. При локальном запуске это выглядит следующим образом:

postgres: // authenticator: mysecretpassword @ localhost: 5432 / testdb

Когда я пытался настроить это в облачной версии, я пытался использовать IP 127.0.0.1 (в документации по Google Proxy SQL указано, что вы подключаетесь через прокси). Это не сработало.

Затем я попытался использовать public-ip, назначенный для базы данных postgres .... это тоже не сработало.

Кто-нибудь знает, как указать правильныйСтрока подключения с использованием этого формата DB_URI?

1 Ответ

1 голос
/ 11 октября 2019

Cloud Run не поддерживает подключение к Cloud SQL с использованием IP-адресов. Это означает, что 127.0.0.1 не будет работать. Cloud Run использует Unix Sockets. Вы должны использовать строку подключения.

Строка подключения Cloud SQL Proxy выглядит следующим образом:

myprojectid:region:myinstanceid

Вы можете получить instanceid из экземпляра Cloud SQLСтраница сведений в консоли.

Вам также необходимо добавить разрешения для учетной записи службы Cloud Run для доступа к Cloud SQL. Вам понадобится как минимум Cloud SQL Client.

...