AWS-Terraform VPC中aws_route_table和aws_route的区别

42次阅读
没有评论

问题描述

在使用AWS-Terraform创建VPC时,对于aws_route_tableaws_route这两个Terraform资源的区别感到困惑。他提供了两个示例代码,并希望了解它们之间的差异。

解决方案

请注意以下操作注意版本差异及修改前做好备份。

方案1

在Terraform中,有两种方法可以实现相同的功能,但有一些限制。
请注意,不能同时在同一个路由表中使用这两种方法。换句话说,如果你在aws_route_table中创建了路由,就不能使用aws_route创建的路由。
根据官方文档的说明,目前Terraform提供了独立的Route资源和内联定义路由的Route Table资源。目前,不能将内联路由的Route Table与任何Route资源一起使用。这样做会导致规则设置的冲突,并覆盖规则。

方案2

在第一个示例中,使用aws_route_table资源创建了一个路由表,并在其中使用route块创建了一个路由。在第二个示例中,使用了aws_route资源来创建路由,并将其与aws_route_table_association资源关联。
这两个示例实现了相同的结果,只是使用了不同的方法。即使所需的变量相同,只是名称略有不同。
根据用户的测试结果,这两种方法确实产生了相同的结果。
感谢@kenlukas的回答!

正文完