2016-12-14 64 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}" 
} 

一旦你完成刪除路由表關聯。

相關問題