У меня есть следующий код, и я хочу подключить группу безопасности к эластичному сетевому интерфейсу (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 resource
vpc_security_group_ids
,aws_network_interface_sg_attachment
.В вашем случае вам не нужен ресурс aws_network_interface_sg_attachment
.
Да, это может сбивать с толку. Отдельный ресурс вложения может быть полезен, если в противном случае у вас были бы циклические зависимости, что здесь не так.
только что запустил terraform apply
код без компонента aws_network_interface_sg_attachment
, сработало как шарм, большое спасибо
Конечно, рад, что смог помочь
а, ладно, спасибо за это, я не знал, что они одинаковые