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

如何合并Terraform子模块输出的FortiOS VIP创建VIP组

解决方案

报错原因

An argument named "member" is not expected here报错的核心原因是:fortios_firewall_vipgrp资源的member是嵌套块类型,而非普通的列表参数,不能直接赋值,需要通过动态块语法生成多个member块。

配置步骤

  1. 子模块输出选择列表格式即可,不要用映射(你给出的映射示例存在重复keyname,本身语法不合法,且列表更适合后续平铺合并),保持子模块outputs.tf的列表写法:
output "vips" {
  value = [
    fortios_firewall_vip.vip1.name,
    fortios_firewall_vip.vip2.name,
    // 剩余10个VIP依次补充
  ]
}
  1. 根模块中先把所有子模块实例输出的VIP列表合并为一个扁平的总列表,再用dynamic语法动态生成member块,fortinet.tf写法如下:
# 把所有子模块实例返回的二维VIP列表压平为一维全量VIP名称列表
locals {
  all_vips = flatten(module.instance[*].vips)
}

resource "fortios_firewall_vipgrp" "vipgrp" {
  name = "example-vipgrp"

  # 遍历全量VIP列表,每个VIP生成一个对应member块
  dynamic "member" {
    for_each = local.all_vips
    content {
      name = member.value
    }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:00:00