对于terraform中的每一个-从文本文件中拾取值

对于terraform中的每一个-从文本文件中拾取值,terraform,Terraform,我的脚本中有一个null\u资源,如下所示,我有一个文本文件,在其中我获得端口否,如下所示 40000 40001 如何逐个访问端口并让脚本连接到该端口,如有任何帮助,我将不胜感激。类似的内容 locals { ports = [ split("\n", file("./ports.txt") ) ] } resource "null_resource" "opsfile" { for_each = to

我的脚本中有一个
null\u资源
,如下所示,我有一个文本文件,在其中我获得
端口
否,如下所示

40000
40001
如何逐个访问端口并让脚本连接到该端口,如有任何帮助,我将不胜感激。

类似的内容

locals {
  ports = [ split("\n", file("./ports.txt") ) ]
}

resource "null_resource" "opsfile" {
  for_each = toset( [ local.ports] )

  
  provisioner "file" {
    source      = "${path.module}/../../configfiles/file1.yaml"
    destination = "/home/file1.yaml"    
    connection {
        type = "ssh"
        user = "newus"        
        host = "var.publicip"
        port = each.key
      }

  triggers = {
    port = each.key
  }
      
 }
}

类似这样的东西

locals {
  ports = [ split("\n", file("./ports.txt") ) ]
}

resource "null_resource" "opsfile" {
  for_each = toset( [ local.ports] )

  
  provisioner "file" {
    source      = "${path.module}/../../configfiles/file1.yaml"
    destination = "/home/file1.yaml"    
    connection {
        type = "ssh"
        user = "newus"        
        host = "var.publicip"
        port = each.key
      }

  triggers = {
    port = each.key
  }
      
 }
}

感谢您的回复,我得到了以下错误
5:for_each=toset(local.port)给定的“for_each”参数值不合适:“for_each”支持映射和字符串集,但您提供了一个包含字符串类型列表的集。
ok,使用字符串集的最后一个内容进行测试:for_each=toset([local.port])oops,不同的错误现在
5:for\u each=toset([local.ports])给定的“for\u each”参数值不合适:“for\u each”支持映射和字符串集,但您提供了一个包含类型元组的集。
感谢您的回复,我得到以下错误
5:for\u each=toset(local.ports)给定的“for\u each”参数值不合适:“for_each”支持映射和字符串集,但您提供了一个包含字符串类型列表的集。
ok,使用字符串集的最后一个内容进行测试:for_each=toset([local.ports])oops,不同错误现在
5:for_each=toset([local.ports])给定的“for_each”参数值不合适:“for_each”支持映射和字符串集,但您提供了一个包含类型tuple的集。