Terraform升级到.12导致元素出现问题

Terraform升级到.12导致元素出现问题,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我有以下创建埃尼集团的代码: resource "aws_network_interface" "eth0" { private_ips = "10.10.0.1" security_groups = ["${aws_security_group.secg1.id}"] subnet_id = "${element(data.aws_subnet_ids.sub01.ids,0)}" lifecycle { ignore_changes = ["su

我有以下创建埃尼集团的代码:

resource "aws_network_interface" "eth0" {
  private_ips     = "10.10.0.1"
  security_groups = ["${aws_security_group.secg1.id}"]
  subnet_id       = "${element(data.aws_subnet_ids.sub01.ids,0)}"

  lifecycle {
    ignore_changes = ["subnet_id"]
  }
}
上面的代码在.12版本中停止工作,它在.11版本中工作。 我尝试了以下替换元素:

"tolist(data.aws_subnet_ids.trust-sub01.ids)[0]"
以及:


两者都不起作用,这给了我一个错误“子网ID不存在”

是否有任何原因您不只是使用子网ID。您可以使用筛选器拨入返回的子网,然后使用该子网的
id
属性:

data "aws_subnet" "default" {
  vpc_id = "vpc-0dfc13e14b4e1fa57"
  filter {
    name   = "availability-zone-id"
    values = ["use1-az4"]
  }
}

resource "aws_network_interface" "eth0" {
  private_ips = "172.31.16.1"
  subnet_id = data.aws_subnet.default.id

  lifecycle {
    ignore_changes = ["subnet_id"]
  }
}
如果必须使用aws\u subnet\u ID(如为每个子网创建网络接口),则可以执行以下操作:

data "aws_subnet_ids" "default" {
  vpc_id = "vpc-0dfc13e14b4e1fa57"
}

resource "aws_network_interface" "eth0" {
  count = length(data.aws_subnet_ids.default.ids)
  subnet_id = element(tolist(data.aws_subnet_ids.default.ids),count.index)

  lifecycle {
    ignore_changes = ["subnet_id"]
  }
}
data "aws_subnet_ids" "default" {
  vpc_id = "vpc-0dfc13e14b4e1fa57"
}

resource "aws_network_interface" "eth0" {
  count = length(data.aws_subnet_ids.default.ids)
  subnet_id = element(tolist(data.aws_subnet_ids.default.ids),count.index)

  lifecycle {
    ignore_changes = ["subnet_id"]
  }
}