我很难理解以下Terraform之间的区别:
示例1:
resource "aws_route_table" "public_1" {
vpc_id = aws_vpc.test.id
route {
cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.main.id
}
tags = {
Name = "test-route"
}
}
resource "aws_route_table_association" "test_pub_route" {
subnet_id = aws_subnet.test_pub.id
route_table_id = aws_route_table.public_1.id
}如果我错了,请纠正我,但在本例中,我只是创建一个带有public_1资源的路由和路由表。
在第二部分中,我只是将名为public_1路由表子网的test_pub关联起来。
问题1:我不明白块路由在public_1中做什么,文档这里对我来说没有多大意义。
示例2:
resource "aws_route_table" "public" {
vpc_id = aws_vpc.main.id
}
resource "aws_route" "public" {
route_table_id = aws_route_table.public.id
destination_cidr_block = "0.0.0.0/0"
gateway_id = aws_internet_gateway.main.id
}
resource "aws_route_table_association" "public" {
subnet_id = aws_subnet.test_pub.id
route_table_id = aws_route_table.public.id
}问题2(主要)我试图理解这两个例子是否实际上是相同的。唯一的区别是,在第一个例子中,我们有一个路由块,它相当于第二个例子中的资源aws_route。
即使是所需的变量也是相同的,只是名称有点不同。
发布于 2022-07-08 14:10:57
这是两种有限制地完成同一件事的方法。
请注意,不能对同一个表使用这两种方法。换句话说,如果在aws_route_table中创建路由,则不能将创建的路由与aws_route相关联。
Terraform目前提供了一个独立的路由资源和一个具有在行中定义的路由的路由表资源。此时,您不能与任何路由资源一起使用带有内联路由的路由表。这样做将导致规则设置冲突,并将覆盖规则。
Q1。aws_route_table中的路由块是在路由表中创建路由,而不需要使用aws_route创建单独的路由。
Q2。是的,他们取得了同样的结果。
https://devops.stackexchange.com/questions/16241
复制相似问题