为什么terraform认为我改变了许多来自&引用;无效?
我刚刚执行了为什么terraform认为我改变了许多来自&引用;无效?,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我刚刚执行了terraformplan,它报告了许多虚假的变化。它报告说它需要重新创建大量资源,因为一些“(空字符串)属性不是null 例如,它认为我改变了这条路线 route = [ - { - cidr_block = "0.0.0.0/0" - egress_only_gateway_id = "" - gateway_i
terraformplan
,它报告了许多虚假的变化。它报告说它需要重新创建大量资源,因为一些“
(空字符串)属性不是null
例如,它认为我改变了这条路线
route = [
- {
- cidr_block = "0.0.0.0/0"
- egress_only_gateway_id = ""
- gateway_id = "igw-xxxx"
- instance_id = ""
- ipv6_cidr_block = ""
- nat_gateway_id = ""
- network_interface_id = ""
- transit_gateway_id = ""
- vpc_peering_connection_id = ""
},
+ {
+ cidr_block = "0.0.0.0/0"
+ egress_only_gateway_id = null
+ gateway_id = "igw-xxxx"
+ instance_id = null
+ ipv6_cidr_block = null
+ nat_gateway_id = null
+ network_interface_id = null
+ transit_gateway_id = null
+ vpc_peering_connection_id = null
},
据我所知,没有实际的变化(在地形配置中),所以我怀疑
存储状态和terraform计算“所需”状态的方式之间一定存在一些差异
这是什么原因造成的?这是terraform 0.13.1和0.13.5之间的变化吗?我遇到了同样的问题。这一答复明确了解决办法: 我不确定这个bug是什么时候或者如何在AWS提供商中引入的,但它是在从0.11.14升级到0.12.28之后突然出现的 如果显式定义所有这些空值,Terraform将不再将其视为更改
route {
- cidr_block = "0.0.0.0/0"
- gateway_id = "igw-ID"
+ cidr_block = "0.0.0.0/0"
+ gateway_id = "igw-ID"
+ egress_only_gateway_id = ""
+ instance_id = ""
+ ipv6_cidr_block = ""
+ nat_gateway_id = ""
+ network_interface_id = ""
+ transit_gateway_id = ""
+ vpc_peering_connection_id = ""
将我的计划从销毁和重新创建所有路由更改为仅添加新路由(匿名值):
与其说是地形升级,不如说是
terraformprovider aws
升级导致了这种情况。虽然我自己并没有看过。你们能分享更多的计划来提供背景吗?现在很难看出这是否只是因为其他因素在改变,它只是显示出比你可能习惯的更大的差异。我重新编写了这个,并且可以验证它是在我将一些TF从0.11.14升级到0.12.28时引入的。我只在更改同一表中的另一个路由(使用内联路由)时才看到该错误。您可以通过显式定义空字段来解决此问题。我将在下面的回答中补充这一点。
# aws_route_table.main-vpc-ID will be updated in-place
~ resource "aws_route_table" "main-vpc-ID" {
id = "rtb-ID"
owner_id = "accountid"
propagating_vgws = []
~ route = [
{
cidr_block = "0.0.0.0/0"
egress_only_gateway_id = ""
gateway_id = "igw-ID"
instance_id = ""
ipv6_cidr_block = ""
nat_gateway_id = ""
network_interface_id = ""
transit_gateway_id = ""
vpc_peering_connection_id = ""
},
+ {
+ cidr_block = "10.100.2.0/24"