Невозможно подключиться к Cloud SQL из другого проекта на App Engine flex Java - PullRequest
0 голосов
/ 11 октября 2018

Вот исключение, которое выдается:

javax.servlet.ServletException: javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server.

Я также получаю это сообщение позже по трассировке стека:

Caused by: java.lang.RuntimeException: The Google Cloud SQL API is not enabled for project [xxxxxx]. Please use the Google Developers Console to enable it: https://console.cloud.google.com/apis/api/sqladmin/overview?project=xxxxxx

Когда я нажимаю на ссылку консоли, я вижу, что Cloud SQL Api включен и код работал отлично, когда база данных была в том же проекте.Я также добавил гибкую учетную запись службы AppEngine, которая играет роль App Engine flexible environment Service Agent в проекте, содержащем базу данных Cloud SQL с ролью Cloud SQL Client.

Что мне делать дальше?Спасибо

ОБНОВЛЕНИЕ

pom.xml:

- update2 больше нет необходимости в этом файле -

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Для взаимодействия между проектами Cloud SQL требуются две вещи:

  • В проекте, содержащем экземпляр Cloud SQL, должен быть включен API администрирования Cloud SQL
  • Проект, который хочет получить к нему доступдолжна иметь соответствующую роль Cloud SQL IAM в проекте, содержащем экземпляр Cloud SQL ( source ):

App Engine и Cloud SQL в разных проектах

Для приложений App Engine и экземпляров Cloud SQL в разных проектах необходимо предоставить учетную запись службы appengine по умолчанию ([PROJECT-ID]@appspot.gserviceaccount.com) одну из следующих ролей IAM:

  • Cloud SQL Client
  • Cloud SQL Editor
  • Cloud SQL Admin
0 голосов
/ 15 октября 2018

При доступе к экземпляру Cloud SQL в другом проекте важно, чтобы API-интерфейс Cloud SQL был включен в исходном проекте.Скопируйте ссылку в сообщении об ошибке и замените идентификатор проекта другим идентификатором проекта.Текущее сообщение вводит в заблуждение, поскольку в настоящее время предполагается, что экземпляр находится в том же проекте.

...