如何将多个实例添加到 aws_network_interface_sg_attachment?

How do I add multiple instances to aws_network_interface_sg_attachment?

我有以下代码并想将安全组附加到弹性网络接口 (ENI)。

resource "aws_instance" "foo" {
  # us-west-2
  count = var.instances
  ami           = data.aws_ami.ubuntu.id
  instance_type = "t2.micro"
  key_name = aws_key_pair.deployer.key_name
  subnet_id  = aws_subnet.tf_test_subnet.id
  vpc_security_group_ids  = [ aws_security_group.allow_tls.id ]
}
resource "aws_network_interface_sg_attachment" "sg_attachment" {
  security_group_id    = aws_security_group.allow_tls.id
  network_interface_id = element(aws_instance.foo.*.primary_network_interface_id,0)
}

但是在部署代码后我得到

Error: security group sg-060153b203cbaa6d5 already attached to interface ID eni-006293e38b0056a91

我怀疑这可能是因为 ,0 索引值,但我不确定?

所以问题是我如何遍历实例并将安全组应用到 ENI

您的模板实际上正在尝试附加它两次:

  • 曾经作为 aws_instance resourcevpc_security_group_ids 属性的一部分,
  • 然后再次使用 aws_network_interface_sg_attachment

在您的情况下,您不需要 aws_network_interface_sg_attachment 资源。