如何在GCP Cloud Build构建阶段访问AWS MySQL数据库进行单元测试?
针对Cloud Build模拟Cloud Function访问AWS MySQL的解决方案
方案1:利用Cloud Build私有工作池绑定VPC
Cloud Build私有工作池本身支持关联VPC,你可以将其绑定到Cloud Function使用的同款VPC(或具备AWS MySQL访问权限的VPC),让构建环境直接通过该VPC访问数据库:
- 创建私有工作池时,指定目标VPC及子网,确保子网路由已配置好通往AWS MySQL的路径(比如复用Cloud Function用的Serverless VPC Connector的网络规则)
- 在
cloudbuild.yml中指定使用该私有工作池:
options: privatePool: workerPool: projects/[你的项目ID]/locations/[地域]/workerPools/[私有工作池名称]
- 给私有工作池的服务账号配置VPC访问权限,同时确保AWS MySQL的安全组允许该VPC的CIDR段访问3306端口。
方案2:临时VM复用Serverless VPC Connector
如果不想调整私有工作池,可在构建步骤中启动临时Compute Engine实例,关联到Serverless VPC Connector所在的VPC,在VM内运行模拟代码:
- 构建步骤中创建临时VM,指定目标VPC子网
- 将模拟Cloud Function的代码及依赖包上传至VM
- 在VM内部执行模拟逻辑,访问AWS MySQL
- 测试完成后销毁VM,避免不必要的成本
方案3:GCP与AWS VPC对等连接(长期场景首选)
若长期需要跨云网络互通,VPC对等是更稳定的方案,操作流程如下:
AWS侧操作
- 登录AWS控制台,创建VPC对等连接请求,填入GCP VPC的主CIDR段(注意两段CIDR不能重叠)
- 接受对等连接后,在路由表中添加条目:将GCP VPC的CIDR段指向该对等连接
- 配置MySQL所在安全组,允许GCP VPC的CIDR段访问3306端口
GCP侧操作
- 登录GCP VPC控制台,接受AWS发起的对等连接请求
- 在GCP VPC的路由表中添加条目:将AWS VPC的CIDR段指向该对等连接
- 确保Cloud Build私有工作池或Cloud Function所在子网启用该对等路由
- 验证:在GCP构建实例中用
mysql命令测试连接AWS MySQL的私有IP
方案4:Cloud NAT给私有工作池分配静态公网IP
如果不想配置跨云VPC对等,可通过Cloud NAT给私有工作池的子网分配静态公网IP,将该IP加入AWS MySQL的安全组白名单:
- 为私有工作池所在子网配置Cloud NAT,指定静态公网IP地址
- 在AWS安全组中添加规则,允许该静态IP访问3306端口
- 确保私有工作池的子网禁用自动分配外部IP,所有出站流量通过Cloud NAT转发
内容的提问来源于stack exchange,提问作者renaudb3
相关产品推荐
相关产品推荐

