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

Terraform如何遍历列表为list(map(string))类型参数赋值

解决方案

直接使用Terraform的列表推导式(for表达式)在master_nodes参数内部做转换即可,不需要使用资源级别的count参数:

resource "some_resource" "this" {
  name = var.name
  master_nodes = [for ip in public_subnet_ip : {
    address = ip
  }]
}

说明

  • 该语法适用于Terraform 0.12及以上版本,会自动遍历public_subnet_ip的所有元素,逐个转换为包含address字段的对象,最终生成符合list(map(string))类型要求的参数值,IP数量变化时会自动适配,无需手动修改下标。
  • 之前使用count生成多份资源的原因是count是作用于整个资源的迭代参数,会为每个索引生成独立的资源实例,你需要的是单个资源内部的属性值为列表,所以只需要在属性赋值层面做遍历转换即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 13:06:10