首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >aws_route在aws_route_table和aws_route中的差异

aws_route在aws_route_table和aws_route中的差异
EN

DevOps用户
提问于 2022-07-08 11:12:33
回答 1查看 502关注 0票数 3

我很难理解以下Terraform之间的区别:

示例1:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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。

即使是所需的变量也是相同的,只是名称有点不同。

EN

回答 1

DevOps用户

发布于 2022-07-08 14:10:57

这是两种有限制地完成同一件事的方法。

请注意,不能对同一个表使用这两种方法。换句话说,如果在aws_route_table中创建路由,则不能将创建的路由与aws_route相关联。

Terraform目前提供了一个独立的路由资源和一个具有在行中定义的路由的路由表资源。此时,您不能与任何路由资源一起使用带有内联路由的路由表。这样做将导致规则设置冲突,并将覆盖规则。

Q1。aws_route_table中的路由块是在路由表中创建路由,而不需要使用aws_route创建单独的路由。

Q2。是的,他们取得了同样的结果。

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

https://devops.stackexchange.com/questions/16241

复制
相关文章

相似问题

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