首页 > 解决方案 > Terraform - 如何遍历列表并将值提供给列表(地图(字符串)?

问题描述

所以,我有一个项目清单,例如

public_subnet_ip = flatten(module.master_nodes.*.public_ip)

其中包含我的主节点的 IP 列表。变量的输出是这样的

public_subnet_ip = ["10.0.0.1", "10.0.0.2", "10.0.0.3"]

现在,我有一个包含这些论点的资源。

resource "some_resource" "this" {
       name = var.name
       master_nodes = [
           {
              address = "an-ip-address"
           },
       ]
}

我想做的是遍历public_subnet_id变量,选择每个元素,并填写address资源中的字段。

我试过了,它创建了 3 个单独的 master_nodes 资源,而不是一个包含 3 个节点的主节点资源。

resource "some_resource" "this" {
       name = var.name
       count = length(var.public_subnet_ip)
       master_nodes = [
           {
              address = element(var.public_subnet_ip, count.index)
           },
          
       ]
}

这就是我现在所拥有的

resource "some_resource" "this" {
       name = var.name
       master_nodes = [
           {
              address = public_subnet_ip[0]
           },
           {
              address = public_subnet_ip[1]
           },
           {
              address = public_subnet_ip[2]
           },
          
       ]
}

标签: terraform

解决方案


推荐阅读