#amazon-web-services #terraform #aws-security-group #elastic-network-interface
#amazon-web-services #terraform #aws-security-group #эластичный сетевой интерфейс
Вопрос:
У меня есть следующий код, и я хотел бы присоединить группу безопасности к эластичному сетевому интерфейсу (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
Ответ №1:
На самом деле ваш шаблон пытается прикрепить его дважды:
- Один раз как часть атрибута
aws_instance resource
’svpc_security_group_ids
, - а затем снова с помощью
aws_network_interface_sg_attachment
.
В вашем случае вам не нужен aws_network_interface_sg_attachment
ресурс.
Комментарии:
1. ах, хорошо, спасибо за это, я не знал, что они одинаковые
2. Да, это может сбивать с толку. Отдельный ресурс вложения может быть полезен, если в противном случае у вас были бы циклические зависимости, чего здесь нет.
3. просто запустил
terraform apply
код безaws_network_interface_sg_attachment
компонента, который работал как шарм, спасибо agian4. Конечно, рад, что смог помочь