为了账号安全,请及时绑定邮箱和手机立即绑定

无法从 App Engine flex Java 上的不同项目连接到 Cloud SQL

无法从 App Engine flex Java 上的不同项目连接到 Cloud SQL

LEATH 2021-11-11 16:16:05
这是抛出的异常: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 回答

?
HUH函数

TA贡献1836条经验 获得超4个赞

访问不同项目中的 Cloud SQL 实例时,务必在源项目中启用 Cloud SQL Admin API。复制错误消息中的链接并将项目 ID 替换为其他项目 ID。当前消息具有误导性,因为它当前假定实例在同一个项目中。


查看完整回答
反对 回复 2021-11-11
?
慕标5832272

TA贡献1966条经验 获得超4个赞

项目间 Cloud SQL 通信需要做两件事:

  • 包含 Cloud SQL 实例的项目必须启用 Cloud SQL Admin API

  • 要访问它的项目必须在包含 Cloud SQL 实例 ( source )的项目上具有适当的 Cloud SQL IAM 角色:

不同项目中的 App Engine 和 Cloud SQL

对于不同项目中的 App Engine 应用程序和 Cloud SQL 实例,您必须授予默认的 appengine 服务帐号([PROJECT-ID]@appspot.gserviceaccount.com)以下 IAM 角色之一:

  • 云 SQL 客户端

  • Cloud SQL 编辑器

  • 云 SQL 管理员


查看完整回答
反对 回复 2021-11-11
  • 2 回答
  • 0 关注
  • 168 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信