无法通过Cloud SQL Proxy从Cloud Run实例连接数据库
排查Cloud Run上Django连接Cloud SQL失败的建议
1. 确认Cloud SQL连接配置生效
- 检查Pulumi部署代码中,Cloud Run服务的
cloudsqlInstances参数是否为完整的实例连接名称(格式:项目ID:区域:实例名),而非仅实例ID。 - 重新部署服务,确保配置变更已同步到运行实例。
2. 验证容器内Proxy端口可访问
- 通过交互式会话进入Cloud Run容器:
执行以下命令测试端口连通性:gcloud run services execute <你的服务名> --region <实例区域> --command bash
若连接失败,说明Cloud SQL Proxy未在容器内正常启动。nc -zv 127.0.0.1 5432
3. 检查服务账号关联
- 确认具备
roles/cloudsql.client角色的服务账号已绑定到Cloud Run服务,即Pulumi代码中serviceAccountName字段已指定该账号,而非仅创建账号未关联。
4. 核对DATABASES配置
- 确保Django的
DATABASES配置中:HOST为127.0.0.1,PORT为5432NAME、USER、PASSWORD与环境变量完全一致,无拼写或格式错误- 无需额外配置SSL参数(Cloud SQL Proxy已处理SSL连接)
5. 查看服务日志排查Proxy启动问题
- 在Cloud Console中查看Cloud Run服务的详细日志,过滤
cloudsql或proxy关键词,检查是否存在Proxy启动失败的错误(如权限不足、实例名称错误等)。
6. 验证实例连接名称正确性
- 执行命令获取官方生成的实例连接名称:
将结果与Pulumi配置中的值对比,确保完全匹配。gcloud sql instances describe slsl-db-instance-04a74a9 --format="value(connectionName)"
内容的提问来源于stack exchange,提问作者Daniel Porteous
相关产品推荐
相关产品推荐

