Terraform重命名状态文件

时间:2020-08-18 08:32:27

标签: terraform

在拥有资源的情况下如何重命名.tfstate?示例如下所示。

terraform {
  backend "s3" {
    bucket         = "px-terraform-state"
    region         = "ap-southeast-1"
    key            = "network/transaction-logs.tfstate"
    encrypt        = true
    dynamodb_table = "px-terraform-state"
  }
}

terraform {
  backend "s3" {
    bucket         = "px-terraform-state"
    region         = "ap-southeast-1"
    key            = "network/sftp-logs.tfstate"
    encrypt        = true
    dynamodb_table = "px-terraform-state"
  }
}

1 个答案:

答案 0 :(得分:1)

有两个主要选项。

首先是像在此一样更改配置,然后运行terraform init,此时Terraform应该提供将状态自动从旧位置迁移到新位置的功能。如果确认,Terraform将从旧位置读取状态,将其写入新位置,然后删除旧位置。

另一种选择是将对象直接在S3中移动到新位置,然后按照显示的那样更改配置,最后运行terraform init -reconfigure,其中-reconfigure选项禁用我描述的自动迁移行为在上一段中,只是将新配置用作旧配置的直接替代品,而完全忘记了旧配置。成功完成后,您应该确保在旧位置仍然没有状态快照,因为否则将来有人会发现它,并且会混淆哪个是最新的快照。