在 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 存储桶已启用版本控制并进行备份,以防止意外丢失。

Back to Blog

相关文章

阅读更多 »

第13天:Terraform 中的数据源

什么是 Data Sources?您可以使用 data sources 来获取现有 VPC、子网、AMI、security groups 等信息。hcl data 'data_source_type' 'dat...

第13天:Terraform 数据源

数据源 将数据源想象成一个电话簿,其中用户名和电话号码以键值对的形式通过 API 访问。不要将值硬编码……