我现有的 terraform 基础设施是由我之前的人创建的,他们使用计数创建了实例,我们想要删除计数,但 terraform 想要重建实例。
有没有办法可以删除计数而无需重建实例?
我想知道诸如 terraform state mv 之类的东西是否能够实现这一目标,或者是否有其他可能。
提前致谢!
更新:示例如下所示
# module.compute.aws_kms_alias.kms-alias will be created
+ resource "aws_kms_alias" "kms-alias" {
+ arn = (known after apply)
+ id = (known after apply)
+ name = "alias/kms-eks"
+ name_prefix = (known after apply)
+ target_key_arn = (known after apply)
+ target_key_id = (known after apply)
}
# module.compute.aws_kms_alias.kms-alias[1] will be destroyed
- resource "aws_kms_alias" "kms-alias" {
- arn = "arn:aws:kms:::alias/kms-eks" -> null
- id = "alias/kms-eks" -> null
- name = "alias/kms-eks" -> null
- target_key_arn = "" -> null
- target_key_id = "" -> null
}
您可以修改状态以重命名状态中的资源以匹配您的配置中的内容。由于
count
元参数包含特殊字符,因此命令中的资源需要在 shell 解释器中转换为文字字符串:
terraform state mv 'module.compute.aws_kms_alias.kms-alias[1]' module.compute.aws_kms_alias.kms-alias
请注意,如果您要创建一个索引为字符串的资源,则需要使用如下语法:
terraform state mv 'module.compute.aws_kms_alias.kms-alias["element_1"]' module.compute.aws_kms_alias.kms-alias