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

如何让非生产环境无需传入Terraform模块的list变量

解决Terraform非生产环境无需传入list变量的方案

核心思路

给模块x的list变量设置空映射默认值,让非生产环境调用时无需显式传入该变量,生产环境仍可正常传入实际业务值。

具体操作步骤

  1. 修改模块x的变量定义
    编辑modules/x/variables.tf,为list变量添加默认空映射:

    variable "list" {
      type = map(object({
        x = string
      }))
      default = {} # 新增默认值,非生产环境将自动使用这个空映射
    }
    
  2. 简化非生产环境的模块调用
    在non-production/main.tf中,调用模块x时移除list参数:

    module "x" {
      source = "../modules/x"
    
      api_key = var.api_key
      token   = var.token
      env     = var.env
    }
    
  3. 保留生产环境原有逻辑
    生产环境的production/main.tf无需修改,继续保持传入list变量的逻辑即可正常运行。

逻辑验证

模块内原有的for_each逻辑var.env == "production" ? var.list : {}依然有效:

  • 生产环境:传入实际的list值,资源会基于该列表正常创建
  • 非生产环境:使用默认的空映射{},for_each为空时不会创建对应资源,符合非生产环境的需求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 16:02:07