在 S3 中保存 Terraform 状态
发布: (2025年12月4日 GMT+8 20:55)
2 min read
原文: Dev.to
Source: Dev.to
将 S3 配置为 Terraform 后端
Terraform 可以将其状态存储在 S3 存储桶中。下面是一个最小化的配置示例,用于设置 S3 后端:
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = ">= 4.0"
}
}
required_version = ">= 1.0"
backend "s3" {
bucket = "terraform-state-dev"
key = "my-key"
region = "us-east-1"
shared_credentials_file = "~/.aws/credentials"
}
}
- 您可以使用 单个键(
key参数)将所有 Terraform 状态存储在一个文件中,或者 - 为每个 Terraform 工作区(或每个环境)分配 一个键,以实现状态的隔离。
将已有状态迁移到 S3
如果您已经有本地状态文件或正在使用其他后端,可以使用以下命令将其迁移到 S3 存储桶:
terraform init -migrate-state
警告: 丢失 Terraform 状态会导致严重问题,因为 Terraform 依赖该状态来跟踪资源。请确保 S3 存储桶已启用版本控制并进行备份,以防止意外丢失。