【发布时间】:2021-11-01 17:24:07
【问题描述】:
很久以前在我们的一个账户中创建了 AWS 私有子网。这些私有子网中没有匹配的公共子网和资源。所以下面,aws_subnet.private_subnets[0] 和 aws_subnet.private_subnets[1] 是空子网
aws_subnet.private_subnets[0]
aws_subnet.private_subnets[1]
aws_subnet.private_subnets[2]
aws_subnet.private_subnets[3]
aws_subnet.private_subnets[4]
子网是使用 terrform 创建的,如下所示:
resource "aws_subnet" "private_subnets" {
count = length(split(",", var.private_subnets))
cidr_block = element(split(",", var.private_subnets), count.index)
其中var.private_subnets 是一个包含我们的 5 个不同 CIDR 块的字符串。
我想整理一下,但我尝试从字符串中删除前两个 CIDR 块,但它仍然尝试重新创建它们,因为它想要更改:
aws_subnet.private_subnets[2] 到 aws_subnet.private_subnets[0],
aws_subnet.private_subnets[3] 到 aws_subnet.private_subnets[1],
aws_subnet.private_subnets[4] 到 aws_subnet.private_subnets[2]
我不希望这种情况发生,因为我需要在新子网中重新部署所有 EC2。那么解决这个问题的最佳方法是什么?是否将它们从状态中删除,使用:
terraform state rm aws_subnet.private_subnets[0]
然后将它们更改为:
terraform state mv 'aws_subnet.private_subnets[2]' 'aws_subnet.private_subnets[0]'
我没有在 state 上做很多工作,打破它可能会导致很多问题,所以只是想确定一下。或者更好的选择是在 AWS 中手动删除它们,然后再次运行 terraform? - 我不确定这是否会导致我目前遇到的同样问题
【问题讨论】:
标签: amazon-web-services terraform subnet