执行terraform plan -refresh-only后资源标记变更但属性无变化的原因
Terraform执行
terraform plan -refresh-only后Route53记录显示变更但属性无变化的原因 以下是几种常见的触发原因:
- 域名名称的规范化差异:Route53会自动对域名做规范化处理(比如自动补上末尾的
.),如果你在Terraform配置里写的是不带.的域名,状态里存的就是这个值,但刷新时从AWS拉取的是规范化后的域名,对比就会显示变更,但实际业务上这个记录没变化。 - 隐藏属性的细微差别:输出里标了
# (5 unchanged attributes hidden),但这只是Terraform简化显示的结果,实际可能存在被隐藏的属性有细微差异——比如TTL的存储类型(数值和字符串)、属性值的大小写,或者AWS返回的默认值和Terraform状态里的不一致,你可以用terraform show命令查看完整的状态和远程资源对比细节。 - AWS Provider版本bug:旧版本的Terraform AWS Provider可能存在Route53资源的刷新逻辑问题,导致误报变更,升级到最新的稳定版本大概率能解决这类问题。
- AWS内部元数据差异:极少数情况下,AWS内部的一些非用户定义的元数据在Terraform状态和远程端存在差异,这种情况刷新后执行
terraform apply -refresh-only通常只会更新状态,不会有实际的资源变更。
内容的提问来源于stack exchange,提问作者Renoa
相关产品推荐
相关产品推荐

