Terraform导入EBS卷未在状态文件中生效问题咨询
以下是导致该问题的几个可能原因:
导入命令未指定真实的EBS卷ID
你执行的导入命令末尾是空白字符串(''),Terraform需要你提供要导入的EBS卷的实际ID(比如vol-0123456789abcdef0)。没有指定有效ID的情况下,Terraform无法定位到目标EBS卷,所谓的“Import successful!”只是完成了数据资源的读取,并没有真正导入目标EBS卷资源。资源地址与模块内定义不匹配
你使用的导入地址module.nonprd_database_test.aws_ebs_volume.this["0"]假设模块内的EBS卷是列表类型(通过count创建),但如果模块里的aws_ebs_volume.this是单个实例(无count或for_each配置),或者索引值错误,就会导致导入的地址不存在,状态文件不会记录该资源。模块内资源存在条件性创建逻辑
如果模块中的aws_ebs_volume资源带有count、for_each或者条件判断,当前配置下该条件不满足(比如count = 0),那么该资源在模块的执行上下文中并不存在,导入操作无法将资源关联到状态中。状态文件读写权限异常
如果使用本地状态文件,当前用户可能没有terraform.tfstate的写入权限;如果使用远程状态(比如S3),可能存在权限配置问题,导致导入操作的结果无法同步到状态存储中,本地提示成功但实际状态未更新。Terraform版本兼容性问题
某些旧版本的Terraform在处理模块内资源导入时可能存在bug,导致导入成功的提示不准确,实际未完成状态写入。可以尝试升级到对应Provider的稳定版本后重试。
内容的提问来源于stack exchange,提问作者gitmcgee

