У меня есть приложение dotnet core 2.0, работающее в гибкой среде Google App Engine. В рамках того же проекта Google у меня есть база данных Cloud SQL - MySQL. На странице сведений об экземпляре Cloud SQL на вкладке "Авторизация" указано
Приложения в этом проекте: Все авторизованы.
Однако я не могу получить доступ к базе данных из своего приложения, пока не добавлю маршрут 0.0.0.0/0
в раздел «Авторизованные сети».
Что я могу сделать, чтобы предоставить моему приложению доступ к базе данных, не открывая мою базу данных миру?
Обновление 2018-05-21 от Джеффри Ренни (принятый ответ)
App Engine теперь поддерживает подключение к экземпляру Cloud SQL с использованием номера порта вместо сокета домена unix. Итак, теперь вы можете добавить что-то вроде этого в свой app.yaml
:
beta_settings:
cloud_sql_instances: "your-project-id:us-central1:instance-name=tcp:5432"
И укажите Host=cloudsql
в строке подключения в appsettings.json:
"ConnectionString": "Uid=aspnetuser;Pwd=;Host=cloudsql;Database=visitors"
В приведенном выше примере это порт 5432, который является портом по умолчанию для базы данных PostgreSQL. Для базы данных MySQL используйте порт 3306.
Полный пример с инструкциями по развертыванию в App Engine можно найти здесь:
https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/master/appengine/fflexible/CloudSql