2016-12-14 90 views
0

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

先谢谢您。

+0

您是使用NAT网关还是自己推出? – mcheshier

+0

我推出了我自己的NAT实例。 –

+0

你可以分享你的terraform文件的任何部分吗?您是使用所有自定义的Terraform代码还是使用任何社区模块? – mcheshier

回答

0

没有看到您的Terraform文件有点困难。但从您的解释看来,VPC的默认行为似乎是使用连接到NAT实例的路由表。您可以创建路由表,然后使其VPC的默认与Terraform这样:

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

然后,当你想暂时子网到您的Internet网关关联,它只是一个添加以下的事情:

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

一旦你完成删除路由表关联。

相关问题