在 S3 中存储 Terraform 远程状态文件动态位置
Store terraform remote state file dynamic location in S3
基本上,我有多个 运行 环境,所以当我尝试上传 terraform .tfstate 状态文件的硬编码密钥地址时,它工作得很好,但我想根据环境变量存储我的 .tfstate 文件或基于条件,以便我可以区分我的开发服务器或生产服务器
我的环境变量可以是:dev、stage 或 prod
下面的代码只是一个示例,所以请了解我要做什么
variable "ENV" {
default = "dev" # dev OR prod
}
provider "aws" {
region = "us-west-2"
}
terraform {
backend "s3" {
bucket = "my-bucket-12345"
key = "proj/${var.ENV}/terraform.tfstate"
region = "us-west-2"
}
}
resource "aws_instance" "example" {
ami = "ami-0d729a60"
instance_type = "t2.micro"
}
你不能这样做。您 不能在 backend
中使用变量 。为 dev, stage, or prod
定义 TF 配置的正常方法是使用 workspaces.
基本上,我有多个 运行 环境,所以当我尝试上传 terraform .tfstate 状态文件的硬编码密钥地址时,它工作得很好,但我想根据环境变量存储我的 .tfstate 文件或基于条件,以便我可以区分我的开发服务器或生产服务器
我的环境变量可以是:dev、stage 或 prod
下面的代码只是一个示例,所以请了解我要做什么
variable "ENV" {
default = "dev" # dev OR prod
}
provider "aws" {
region = "us-west-2"
}
terraform {
backend "s3" {
bucket = "my-bucket-12345"
key = "proj/${var.ENV}/terraform.tfstate"
region = "us-west-2"
}
}
resource "aws_instance" "example" {
ami = "ami-0d729a60"
instance_type = "t2.micro"
}
你不能这样做。您 不能在 backend
中使用变量 。为 dev, stage, or prod
定义 TF 配置的正常方法是使用 workspaces.