Terraform资源启用count后执行state mv迁移状态报错求助
解决Terraform从无count到count=1时的状态迁移错误
你遇到的错误是因为Terraform对整个资源和资源实例的地址类型有严格区分:不带索引的地址指向整个资源,带[0]的是单个实例,两者不能直接通过terraform state mv互相转换。
要实现把现有无count的IAM组映射到count=1的实例、避免资源重建,按以下步骤操作:
- 更新Terraform代码:给
module.users.aws_iam_group.allow_change_password资源块添加count = 1 - 删除旧状态条目:执行命令移除原无count资源的状态记录:
terraform state rm 'module.users.aws_iam_group.allow_change_password' - 导入现有资源到新实例地址:把已存在的IAM组导入到带count的实例状态中,替换
<IAM_GROUP_NAME_OR_ARN>为你的IAM组名称或ARN:terraform import 'module.users.aws_iam_group.allow_change_password[0]' <IAM_GROUP_NAME_OR_ARN>
完成后执行terraform plan,应该就不会再提示重建该IAM组了。
内容的提问来源于stack exchange,提问作者codebee
相关产品推荐
相关产品推荐

