我使用 Google 提供的Terraform 模块在Cloud Foundation Toolkit之后在 GCP 中创建了我的组织基础架构。
下表列出了所有环境的 IP 范围:
现在我正在部署我的应用程序,该应用程序基本上由 Cloud Run 服务和 Cloud SQL (Postgres) 实例组成。Cloud SQL 实例是使用为对等服务(例如 Cloud SQL)保留的“未分配”IP 范围中的私有 IP 创建的。
为了在 Cloud Run 和 Cloud SQL 之间建立连接,我还创建了 Serverless VPC 连接器(ip 范围 10.1.0.16/28)并配置了 Cloud SQL 代理。
当我尝试从 Cloud Run 服务连接到数据库时,大约 10 秒后出现此错误:
CloudSQL 连接失败。有关更多详细信息,请参阅https://cloud.google.com/sql/docs/mysql/connect-run:发布“https://www.googleapis.com/sql/v1beta4/projects/[my-project]/instances /platform-db/createEphemeral?alt=json&prettyPrint=false": 超出上下文期限
我已授予roles/vpcaccess.user
默认 Cloud Run SA 和宿主项目中应用程序使用的 SA。
我已授予roles/compute.networkUser
服务项目中的两个 SA。我还授予roles/cloudsql.client
了这两个 SA。
我已经启用servicenetworking.googleapis.com
并vpcaccess.googleapis.com
在服务项目中。
我的想法已经用完了,我无法弄清楚问题是什么。
当 Cloud Run 尝试创建对 Cloud SQL API 的 POST 请求时,这似乎是一个超时错误。因此,VPC 连接器 (10.1.0.16/28) 似乎无法连接到 Cloud SQL 实例 (10.0.80.0/20)。
有没有人遇到过这个问题?