我正在使用Java 8,以便从Google Standard App Engine与Google Cloud SQL连接。尝试的样品也可以在下面的链接中找到,以便测试连接 https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/cloud-sql/mysql/servlet
我面临的问题:
- 如果连接名称在 https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/cloud-sql/mysql/servlet/src/main/webapp/WEB-INF/appengine-web.xml 可用,则不正确,我能够获得HTTP代码500,并且Google错误控制台上的错误日志作为实例名称是错误的
- 当我使用正确的实例名称时,错误控制台中没有错误,但连接不起作用
我的谷歌云中有以下组件可用:
- 基于 Java 8的标准应用引擎应用程序
- VPC 网络下的无服务器 VPC访问
- 具有专用 IP 的云 SQL 5.7
谢谢
如官方文档中所述,您有 2 种替代方案可以从 App Engine 标准环境连接到 Cloud SQL:
-
公共 IP中的云 SQL = 将云 SQL 代理与
INSTANCE_CONNECTION_NAME
一起使用 -
私有IP 中的云 SQL = 通过无服务 VPC 配置使用实例的私有 IP 和端口 3306 进行连接。
这意味着,在您的情况下,如果您的云 SQL 实例只有私有 IP,则必须通过无服务器 VPC 直接连接到它。
请注意,您的 App Engine 标准应用程序需要正确的设置才能通过无服务器 VPC 连接器发送流量,至少具有以下 2 个要点:
-
无服务器 VPC 访问连接器需要与使用它的 GAE 应用程序位于同一项目和区域中。
-
GAE 应用需要在运行时
Java8
appengine-web.xml
文件中配置 VPC 连接器,如下所示:
<vpc-access-connector>
<name>projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME</name>
</vpc-access-connector>
有关如何使用 GAE 标准 Java8 运行时配置无服务器 VPC 连接器的更多详细信息。