Сохраните значения, созданные двумя модулями, в массиве и используйте эти значения Terraform

Я создаю два vpc-вложения для транзитного шлюза. Я пытаюсь сохранить идентификаторы вложений в одной переменной и вызвать их для создания нескольких маршрутов в таблице маршрутов.

Ошибка:

      Error: Invalid value for module argument

  , in module "routes":
 199:   transit_gateway_attachment_id = "${local.ec2_transit_gateway_vpc_attachment_id[count.index]}"

The given value is not suitable for child module variable
"transit_gateway_attachment_id" defined at
../modules/routes/variables.tf:25,1-41: string required.
      locals {
  ec2_transit_gateway_vpc_attachment_id = [concat(module.tgw.ec2_transit_gateway_vpc_attachment_ids, module.tgw_peer.ec2_transit_gateway_vpc_attachment_ids)]
}


module "routes" {
  source   = "../modules/routes"
  count = length(local.ec2_transit_gateway_vpc_attachment_id)
  blackhole              = false
  destination_cidr_block = var.destination_cidr_block_route[count.index]

  transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.route.id

  transit_gateway_attachment_id = "${local.ec2_transit_gateway_vpc_attachment_id[count.index]}"
}

1 ответ

Это сработало. В основном это была синтаксическая ошибка.

      locals {
  ec2_transit_gateway_vpc_attachment_id = concat(module.tgw.ec2_transit_gateway_vpc_attachment_ids, module.tgw_peer.ec2_transit_gateway_vpc_attachment_ids)
}


module "routes" {
  source   = "../modules/routes"
 count = length(local.ec2_transit_gateway_vpc_attachment_id)
  blackhole              = false
 destination_cidr_block = var.destination_cidr_block_route[count.index]
  transit_gateway_route_table_id = aws_ec2_transit_gateway_route_table.route.id

 transit_gateway_attachment_id = element(local.ec2_transit_gateway_vpc_attachment_id, count.index) 
}
Другие вопросы по тегам