繁体   English   中英

Google Cloud Function 在另一个项目中访问 Cloud SQL PostgreSQL

[英]Google Cloud Function access Cloud SQL PostgreSQL in another project

我的云 Function 无法连接到我的云 SQL PostgreSQL 实例。 我收到错误:

psycopg2.OperationalError: could not connect to server: Connection timed out
Is the server running on host "my.private.db.ip" and accepting
TCP/IP connections on port 5432?

有 2 个项目(A 和 B),通过 VPC 对等互连。

  • 项目 A - 云 SQL PostgreSQL
  • 项目 B - 云 Function

使用这种架构有限制吗?

  • 我正在尝试使用私有 IP 连接到我的数据库。
  • 项目 B 上的其他云功能已经成功连接到项目 A 上的 VM 实例。

注意:我试图不使用公共 ip 进行此连接。

由于 VPC 对等传递性限制,您无法访问 Cloud SQL 实例。 事实上,如果您查看VPC 对等限制

只有直接对等的网络才能进行通信。 不支持传递对等互连。 换言之,如果 VPC 网络 N1 与 N2 和 N3 对等,但 N2 和 N3 没有直接连接,则 VPC 网络 N2 无法通过 VPC Network Peering 与 VPC 网络 N3 通信。

在你的情况下,你达到了这个限制。 您有一个从项目 A 到项目 B 的对等,另一个从 Cloud SQL 到项目 A。

因此,您无法从项目 B 访问 Cloud SQL 实例。

一种解决方法是在项目之间创建一个 VPN(而不是对等互连)。 或者接受在您的 Cloud SQL 实例上拥有公共 IP(无授权网络)以接受 Cloud SQL 代理连接。

我最近写了一篇关于这个的文章。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM