Ошибка: неподдерживаемый атрибут, каждое значение является объектом с двумя атрибутами.

я пытаюсь создать несколько сетевых интерфейсов, используя for_each и locals, вот мой код

      locals {
  network_interfaces = {
    a = {
      subnet_id      = module.vpc.public_subnets[0],
      security_group = [aws_security_group.ssh.id],
    },

    b = {
      subnet_id       = module.vpc.public_subnets[0],
      security_groups = [aws_security_group.ssh.id],
    },
    c = {
      subnet_id       = module.vpc.public_subnets[1],
      security_groups = [aws_security_group.ssh.id],
    },
    d = {
      subnet_id       = module.vpc.public_subnets[1],
      security_groups = [aws_security_group.ssh.id],
    },

  }

}

и здесь я пытаюсь перебрать local.network_interfaces с помощью for_each, чтобы создать 4 сетевых интерфейса.

      resource "aws_network_interface" "this" {
  for_each  = local.network_interfaces
  subnet_id = each.value.subnet_id
  security_groups = each.value.security_groups
  tags = {
    Name = "${each.key}_network_interface"
  }
}

но когда я запускаю применение Terraform, это дает мне эту ошибку

      │ Error: Unsupported attribute
│ 
│   on main.tf line 61, in resource "aws_network_interface" "this":
│   61:   security_groups = each.value.security_groups
│     ├────────────────
│     │ each.value is object with 2 attributes
│ 
│ This object does not have an attribute named "security_groups"

любая помощь будет оценена

1 ответ

Ключ, соответствующий группам безопасности в значении для mapс aключ должен совпадать с ключами в другом objectзначения на картах:

      a = {
  subnet_id       = module.vpc.public_subnets[0],
  security_groups = [aws_security_group.ssh.id],
},
Другие вопросы по тегам