如何使用terraform将子网关联从一个路由表更改为另一个路由表?

时间:2016-12-14 12:15:35

标签: amazon-web-services nat terraform

在AWS中,使用Terraform我已经启动了在私有子网中运行的某些实例。我必须在私有实例中安装某些软件包。所以我与一个连接到互联网网关的路由表进行临时关联。安装程序包后,当我想将该特定子网与连接到NAT的路由表关联时,它会抛出错误,告知路由表关联已存在。但如果我去aws控制台,我可以手动完成。我有什么方法可以使用terraform做到这一点?

先谢谢你。

1 个答案:

答案 0 :(得分:0)

没有看到你的Terraform文件有点困难。但是根据您的解释,似乎VPC的默认行为是使用连接到NAT实例的路由表。您可以创建路由表,然后以这种方式使用Terraform使其成为VPC的默认值:

resource "aws_main_route_table_association" "a" {
  vpc_id         = "${aws_vpc.foo.id}"
  route_table_id = "${aws_route_table.bar.id}"
}

然后,当您想暂时将子网关联到您的互联网网关时,只需添加以下内容:

resource "aws_route_table_association" "a" {
  subnet_id      = "${aws_subnet.your_subnet.id}"
  route_table_id = "${aws_route_table.your_IG_route_table.id}"
}

完成后删除路由表关联。