希望有人能帮到我。基本上,我尝试使用aws_route_tables的数据源资源,然后使用aws_route资源对其进行查找。所以我在这里要实现的是,为每个关联到特定VPC的路由表创建一条到转接网关的路由。然而,我一直收到这个错误:
Error reading config for aws_route[rt_tgw]: parse error at 1:40: expected "}" but found "["
这是我遵循的文档:https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/route_tables
顺便说一下,我使用的是Terraform版本11.15,这是我得到的代码:
variable "environment_group" {
description = "Name given to the resource"
default = "test"
}
variable "create_tgw_route" {
description = "Toggle to create the transit gateway route within the VPC route table"
default = true
}
variable "tgw_route_cidr" {
description = "Specify the destination cidr block for the transit gateway route within the VPC route table"
default = "10.0.0.0/8"
}
variable "transit_gateway_id" {
default = ""
description = "Temporary variable that should be replaced by a data lookup in due time"
}
data "aws_vpc" "vpc_id" {
count = "${var.create_tgw_route ? 1 : 0}"
filter {
name = "tag:Name"
values = ["vpc-${var.environment_group}"]
}
}
data "aws_route_tables" "rtb" {
count = "${var.create_tgw_route ? 1 : 0}"
vpc_id = "${data.aws_vpc.vpc_id.id}"
filter {
name = "tag:Name"
values = ["rt-${var.environment_group}-*"]
}
}
resource "aws_route" "rt_tgw" {
count = "${var.create_tgw_route ? 1 : 0}"
route_table_id = "${tolist(data.aws_route_tables.rtb.ids)[count.index]}"
destination_cidr_block = "${var.tgw_route_cidr}"
transit_gateway_id = "${var.transit_gateway_id}"
}
如果有任何帮助,我们将不胜感激。提前谢谢你。
发布于 2021-09-06 08:27:48
好吧,我已经想办法解决这个问题了。我将资源块更改为:
resource "aws_route" "rt_tgw" {
count = "${var.create_tgw_route ? length(data.aws_route_tables.rtb.ids) : 0}"
route_table_id = "${data.aws_route_tables.rtb.ids[count.index]}"
destination_cidr_block = "${var.tgw_route_cidr}"
transit_gateway_id = "${var.transit_gateway_id}"
}
所以基本上我改变了两件事。
中显示的方式
https://stackoverflow.com/questions/69076868
复制相似问题