Сохраните значения, созданные двумя модулями, в массиве и используйте эти значения 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)
}