Terraform 路由表强制每次应用新资源
Posted
技术标签:
【中文标题】Terraform 路由表强制每次应用新资源【英文标题】:Terraform Route Table forcing new resource every apply 【发布时间】:2018-08-16 21:12:35 【问题描述】:如果您知道答案,请提前致谢!
当我为跨帐户 vpc 对等连接添加多个子网的路由时,它会强制每次应用一个新资源
resource "aws_route" "route"
count = "$var.first_route_table_count"
route_table_id = "$element(var.first_route_table_ids, count.index)"
destination_cidr_block = "$data.aws_vpc.second_vpc.cidr_block"
vpc_peering_connection_id = "$aws_vpc_peering_connection.peer.id"
resource "aws_route" "second_account_route"
provider = "aws.second_account"
count = "$var.second_route_table_count"
route_table_id = "$element(var.second_route_table_ids, count.index)"
destination_cidr_block = "$data.aws_vpc.first_vpc.cidr_block"
vpc_peering_connection_id = "$aws_vpc_peering_connection.peer.id"
【问题讨论】:
你是如何定义你的路由表的?并且路由表会同时应用吗? 【参考方案1】:如果有人在未来遇到这个 Terraform 怪癖,这就是解决方案..
我开始意识到,因为我同时定义了一个路由表和一个路由,所以您以后不能再添加另一个路由。
解决方案是创建一个没有路由的路由表,然后单独添加所有其他路由。
【讨论】:
他们在他们的文档中排序告诉你这一点,不是很清楚。我刚碰到这个。您需要创建一个没有“内联”route
的 aws_route_table
资源,然后创建多个 aws_route
s 来更新它以上是关于Terraform 路由表强制每次应用新资源的主要内容,如果未能解决你的问题,请参考以下文章
AWS on Terraform - 如何避免“强制使用新资源”
如何使用 terraform 在 OCI 中的现有默认路由表中添加新规则