是否可以在不重建的情况下从索引中删除地形资源
Is it possible to remove a terraform resource from an index without rebuilding
我现有的 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 基础设施是由我之前的某人创建的,他们使用计数创建了实例,我们想删除计数,但 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