在拥有资源的情况下如何重命名.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"
}
}
答案 0 :(得分:1)
有两个主要选项。
首先是像在此一样更改配置,然后运行terraform init
,此时Terraform应该提供将状态自动从旧位置迁移到新位置的功能。如果确认,Terraform将从旧位置读取状态,将其写入新位置,然后删除旧位置。
另一种选择是将对象直接在S3中移动到新位置,然后按照显示的那样更改配置,最后运行terraform init -reconfigure
,其中-reconfigure
选项禁用我描述的自动迁移行为在上一段中,只是将新配置用作旧配置的直接替代品,而完全忘记了旧配置。成功完成后,您应该确保在旧位置仍然没有状态快照,因为否则将来有人会发现它,并且会混淆哪个是最新的快照。