首页 > 解决方案 > 如何将多个实例添加到 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

标签: amazon-web-servicesterraformaws-security-groupelastic-network-interface

解决方案


您的模板实际上试图附加它两次:

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

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


推荐阅读