问题描述
在使用AWS-Terraform创建VPC时,对于aws_route_table
和aws_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的回答!
正文完