Google Cloud Platform - используя экземпляр mysql в одном проекте для другого проекта - подключите экземпляр mysql в одном проекте к другому проекту - PullRequest
0 голосов
/ 23 сентября 2019

Проект A - Запуск веб-приложения на Flask и Python (с конечной точкой @ app.route ....)

Проект B - Запуск другого веб-приложения на Flask и Python (с конечной точкой @ app.route ....)

У нас есть экземпляр MySQL (CLOUD SQL) в проекте A в Google Cloud Platform.Мы используем сокет Unix для подключения к нему, и он отлично подключается в проекте A. (все хорошо в проекте A).

Однако, когда мы используем тот же экземпляр MySQL для проекта B в GCP ...это дает 2002 - ошибка соединения отклонена.и (Внутренняя ошибка сервера) на странице браузера [поскольку он не может подключиться к БД].

Нужна помощь, чтобы понять, как подключить один экземпляр MySQL (Cloud SQL) в GCP для двух проектов.(в том же аккаунте) Примечание: все они находятся в одном регионе

1 Ответ

1 голос
/ 23 сентября 2019

Я понимаю, что ваш экземпляр Cloud SQL имеет общедоступный IP-адрес, и вы правильно настраиваете конфигурацию "CLOUD_SQL_CONNECTION_NAME" в вашем app.yaml для ваших двух приложений.Потому что, если вы используете частный IP в своем экземпляре Cloud SQL, это подключение будет невозможно (если только ваш экземпляр Cloud SQL не находится в хост-проекте и / или вы не включите импорт / экспорт пользовательских маршрутов для пиринга Cloud SQL VPC, однако, чтобыреализуйте этот последний вариант, вам необходимо связаться со службой поддержки GCP.

Все, что говорится, если вы используете публичный IP, единственное, что вам нужно сделать, это предоставить сервисную учетную запись App Engine для ProjectB (это должно быть похоже на «service- [YOUR_PROJECT_NUMBER_B] @ gae-api-prod.google.com.iam.gserviceaccount.com») разрешения на подключение к Cloud SQL (наиболее ограниченной предопределенной ролью для выполнения этой задачи является «Облако»«Роль клиента SQL») в разделе IAM проекта А.

...