1 - 在 Google Cloud SQL 上有一个 MySQL 实例,内部 IP 为 10.22.etc(没有外部/公共 IP) 2 - 将 Java Web App 部署到 Google App Engine,内部 IP 为 10.140.etc(没有外部/公共 IP)
我怎样才能在同一个网络上获得 1 和 2,或者至少能够使用从我的 Java Web 应用程序到我的 MySQL 的 JDBC 连接,而不使用公共 IP。
在控制台、eclipse 插件或文档中没有看到有关如何执行此操作的任何地方。Google Cloud 真的让每个人都使用公共 IP 从 App Engine 标准连接到 Google Cloud SQL 吗?如果是这样,这是因为两者都是完全托管的 PaaS 吗?
答案1
如果您使用应用引擎灵活环境,它将托管在您的私有网络中的实例上,使您能够访问内部 IP。
我假设您使用的是标准环境。我找到了一个不错的链接,告诉您两者之间的区别 ->https://cloud.google.com/appengine/docs/flexible/java/migrating
要切换,您需要确保在app.yaml
文件上将环境设置为 flex。
runtime: java
env: flex
答案2
前往云 SQL MySQL 从 App Engine 连接文档并按照说明(包括链接)上的内容进行操作。
然后你就可以实现你想要的,但是通过 Beta 发布阶段的一个功能,即无服务器 VPC 访问。
注意:这些说明要求您的 Cloud SQL 实例使用可公开访问的 IP 地址。如果您想使用私有 IP 地址,请参阅配置无服务器 VPC 访问秒。