私有IP连接GCP CloudSQL失败,报CORS预检缺少allow origin头错误
你遇到的CORS报错属于前端侧的表面现象,根因是App Engine到Cloud SQL的私有IP连接失败,接口服务初始化异常无法正常返回带CORS配置的响应,先解决数据库连接问题即可同步解决跨域报错,可按以下顺序排查:
- 基础资源配置校验
- 确认Cloud SQL实例已开启私有IP,且私有IP所属的VPC网络和你创建的Serverless VPC连接器所属VPC为同一个
- 确认Serverless VPC连接器状态为运行中,配置的IP段没有和VPC内其他资源网段冲突
- 确认VPC防火墙添加入站规则:允许Serverless VPC连接器的IP段访问Cloud SQL私有IP的5432端口,协议选择TCP
- 配置文件正确性校验
- 你当前贴出的
appengine-web.xml的VPC连接器配置缺少正确的XML标签,标准配置格式如下:
请确认配置已经包裹在正确的标签内,裸写路径和出口规则不会生效<vpc-access-connector> <name>projects/PROJECTNAME/locations/europe-west1/connectors/CONNECTORNAME</name> <egress-settings>all-traffic</egress-settings> </vpc-access-connector>
- 你当前贴出的
- 连接参数校验
- 确认
CLOUD_SQL_CONNECTION_NAME参数格式正确,标准格式为项目ID:实例所属区域:实例名,不要填错区域或实例名 - 确认项目依赖中的
postgres-socket-factory版本为最新稳定版,旧版本可能存在私有IP适配的bug
- 确认
- 权限校验
- 确认App Engine默认服务账号(格式为
[你的项目ID]@appspot.gserviceaccount.com)已被授予Cloud SQL Client权限,缺少对应权限也会触发连接拒绝报错
- 确认App Engine默认服务账号(格式为
内容的提问来源于stack exchange,提问作者Nikisha Mistry
相关产品推荐
相关产品推荐

