首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Terraform - aws_route_tables

Terraform - aws_route_tables
EN

Stack Overflow用户
提问于 2021-09-06 15:18:54
回答 1查看 316关注 0票数 0

希望有人能帮到我。基本上,我尝试使用aws_route_tables的数据源资源,然后使用aws_route资源对其进行查找。所以我在这里要实现的是,为每个关联到特定VPC的路由表创建一条到转接网关的路由。然而,我一直收到这个错误:

代码语言:javascript
代码运行次数:0
运行
复制
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,这是我得到的代码:

代码语言:javascript
代码运行次数:0
运行
复制
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}"
}

如果有任何帮助,我们将不胜感激。提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2021-09-06 16:27:48

好吧,我已经想办法解决这个问题了。我将资源块更改为:

代码语言:javascript
代码运行次数:0
运行
复制
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}"
}

所以基本上我改变了两件事。

  1. 修改计数值,以确保在数据源中查找的任何路由表都将是创建的路由数量。在这种情况下是3个路由表=3个路由created
  2. Amending 'route_table_id‘值,因为出于某种原因,版本11不喜欢它在documentation.

中显示的方式

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69076868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档