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

如何通过Terraform lb-http模块部署仅存储桶后端的GCP HTTPS负载均衡

结论

纯存储桶作为后端部署GCP HTTPS负载均衡在平台层面完全可行,你遇到的配置障碍来自所用Terraform模块的设计限制,不是GCP本身不支持该架构。

问题根源

你使用的lb-http模块4.x版本中,backends输入变量被设计为仅接收实例组、网络端点组这类计算类后端的配置参数,没有预留后端存储桶的传入入口:

  • 直接传入存储桶引用不符合变量的结构校验,会直接报错
  • 完全省略backends属性会触发变量必填校验,无法通过Terraform plan阶段
    你当前采用的空实例组后端+自定义url_map路由到存储桶的方案虽然能正常运行,但会额外创建一个完全不承载流量的空后端服务和关联资源,属于冗余配置。
最优实现方案

可根据自身需求二选一,两种方案都能实现无冗余的纯存储桶后端部署:

方案1:弃用模块封装,手动编排负载均衡资源

这是最灵活、无多余资源的实现方式,按顺序创建以下资源即可完成部署:

  • 全局静态公网IP
  • 后端存储桶资源(绑定托管静态内容的GCS存储桶,可按需开启CDN、配置安全策略)
  • SSL证书(托管证书或自定义上传证书均可)
  • URL映射(所有域名、所有路径的默认服务都指向上一步创建的后端存储桶,不需要额外创建计算类后端服务)
  • 目标HTTPS代理(绑定SSL证书和URL映射)
  • 443端口全局转发规则(绑定静态IP和目标HTTPS代理)
  • 可选:添加80端口转发规则和对应的URL重定向配置,实现HTTP自动跳转HTTPS
    该方案下所有创建的资源都是实际承载流量的有效资源,不会生成空的冗余后端。

方案2:保留lb-http模块,精简冗余配置

如果你希望复用模块自带的SSL证书管理、权限配置等封装能力,不需要完全弃用模块,只需要精简现有backends配置,把冗余资源的创建关掉即可。
由于你已经关闭了模块的URL映射自动创建、自定义了指向存储桶的URL映射,模块创建的default后端服务实际上不会收到任何流量,你可以直接关闭该后端关联的健康检查、日志配置,把冗余开销降到最低,调整后的backends配置参考如下:

backends = {
  default = {
    protocol    = "HTTP"
    port        = 80
    port_name   = "http"
    timeout_sec = 10
    enable_cdn  = false
    groups      = []

    health_check = null
    log_config   = null
    iap_config = {
      enable               = false
      oauth2_client_id     = ""
      oauth2_client_secret = ""
    }
  }
}

注意:不要给这个空后端配置健康检查规则,无实例组的空后端永远无法通过健康检查,虽然不会影响转发到存储桶的正常流量,但会在GCP控制台产生无意义的异常告警。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 09:01:21