使用terraform-aws-modules/rds/aws执行Terraform Plan时遇"name"属性不支持错误
解决Terraform RDS模块报错:Unsupported attribute "name" for aws_db_instance
问题原因
你使用的terraform-aws-modules/rds/aws 4.x版本和当前AWS Provider版本不兼容。AWS Provider 3.x之后弃用了aws_db_instance的name属性,改用db_name,但旧版RDS模块内部输出仍在引用已被移除的name属性,从而触发报错。
解决方案
方案1:锁定AWS Provider版本适配旧RDS模块
在AWS Provider配置块中指定与RDS 4.x版本兼容的Provider版本(例如~3.74):
provider "aws" { version = "~> 3.74" region = var.region # 替换为你的实际区域 }
执行terraform init重新初始化环境,即可解决属性不匹配问题。
方案2:升级RDS模块适配新版Provider
将RDS模块版本升级到5.x及以上(该版本已适配AWS Provider 4.x+):
module "db" { source = "terraform-aws-modules/rds/aws" version = "~> 5.0" identifier = var.name allocated_storage = var.storage db_name = replace(var.name, "-", "") # 其他配置保持不变,注意5.x版本部分参数可能有调整,需按需修改 }
执行terraform init -upgrade强制升级模块并完成初始化。
方案3:清理Terraform缓存(升级后仍报错时使用)
若调整版本后报错依旧,执行以下命令清理缓存后重新初始化:
rm -rf .terraform/ terraform init -upgrade
内容的提问来源于stack exchange,提问作者Arthur Coelho
相关产品推荐
相关产品推荐

