You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Cloud Node.js项目跨服务器数据库IP白名单配置求助

Google Cloud Node.js 连接外部数据库的IP白名单配置方案

我之前也碰到过一模一样的问题——GCP上的Serverless服务(比如App Engine、Cloud Run)默认没有固定的出站静态IP,直接给数据库加IP白名单根本不现实。下面给你几个官方支持的靠谱解决方案,一步步来就行:

方案1:使用Serverless VPC Access连接器(优先推荐)

这个方案专门针对Serverless服务设计,能让你的Node.js应用通过一个带有静态IP的连接器访问外部资源,步骤如下:

  • 第一步:在GCP控制台创建Serverless VPC Access连接器
    • 进入VPC网络 > Serverless VPC Access页面,点击“创建连接器”
    • 选择你的项目、区域,设置连接器名称,指定一个未被占用的IP范围(比如10.8.0.0/28)
    • 勾选“分配静态IP”选项,这样连接器就会拥有一个固定的出站IP
  • 第二步:配置你的Node.js服务使用这个连接器
    • 如果是App Engine,在app.yaml里添加以下配置:
      vpc_access_connector:
        name: "projects/你的项目ID/locations/你的区域/connectors/你的连接器名称"
      
    • 如果是Cloud Run,部署时添加参数:
      gcloud run deploy 你的服务名称 --image 你的镜像地址 --vpc-connector 你的连接器名称
      
  • 第三步:把连接器的静态IP加到数据库的白名单里
    • 在连接器详情页面就能看到分配的静态IP,复制后添加到数据库的IP允许列表即可

方案2:使用Cloud NAT(适合虚拟机或关联VPC的服务)

如果你的Node.js应用部署在Compute Engine虚拟机上,或者已经关联了VPC网络,可以用Cloud NAT来统一出站IP:

  • 第一步:创建Cloud NAT网关
    • 进入VPC网络 > Cloud NAT页面,点击“创建NAT网关”
    • 选择你的VPC网络,指定NAT所属的区域,然后分配一个静态IP地址
  • 第二步:配置子网使用这个NAT网关
    • 在NAT网关的配置里,选择需要关联的子网,确保你的Node.js服务所在的子网被包含在内
  • 第三步:将NAT的静态IP添加到数据库白名单
    • 同样,在NAT网关详情里找到静态IP,添加到数据库的允许列表

方案3:使用自定义代理服务器(备选方案)

如果上面两种方案不适合你的场景,可以部署一个带静态IP的Compute Engine虚拟机作为代理:

  • 创建一个GCE虚拟机,给它分配静态外部IP
  • 在虚拟机上部署一个代理服务(比如Nginx),配置它转发数据库请求
  • 让你的Node.js应用通过这个代理连接数据库
  • 最后把虚拟机的静态IP加到数据库白名单里
    注意:这个方案需要额外维护虚拟机,适合有特定需求的场景

以上三种方案都是GCP官方支持的,其中Serverless VPC Access连接器对App Engine和Cloud Run这类Serverless服务最友好,不需要额外维护资源,推荐优先尝试。

内容的提问来源于stack exchange,提问作者Froosty Flakes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 09:43:52