我是否可以将Terraform配置为不使用;环境:";在工作区的路径中';S3上的状态文件路径?
我使用S3作为Terraform的远程状态 当我使用Terraform工作区时,环境状态文件的路径最终是我是否可以将Terraform配置为不使用;环境:";在工作区的路径中';S3上的状态文件路径?,terraform,terraform-provider-aws,Terraform,Terraform Provider Aws,我使用S3作为Terraform的远程状态 当我使用Terraform工作区时,环境状态文件的路径最终是s3:///env://,其中和键在Terraform块中指定。例如,使用以下地形HCL: terraform { backend "s3" { bucket = "devops" key = "tf-state/abc/xyz.tfstate" region = "us-east-1" } } 如果我们使用的是地形工作区,比如: $ terraform w
s3:///env://
,其中
和键在Terraform
块中指定。例如,使用以下地形HCL:
terraform {
backend "s3" {
bucket = "devops"
key = "tf-state/abc/xyz.tfstate"
region = "us-east-1"
}
}
如果我们使用的是地形工作区,比如:
$ terraform workspace new myapp-dev
$ terraform workspace select myapp-dev
$ terraform init
$ terraform apply
然后,我们将以以下路径中的地形状态文件结束:s3://devops/env:/myapp dev/tf state/abc/xyz.tfstate
Terraform在默认情况下似乎使用了一个名为env:
的子目录,在该目录下它管理与工作空间关联的状态文件。我的问题是,我们是否可以在Terraform配置中添加任何东西,以允许我们对env:
部分进行控制?当使用非默认工作区时,S3存储桶中的状态路径包括
价值,例如:
然后,当使用myapp-dev
工作区时,状态文件将是s3://devops/tf-state/myapp-dev/terraform.tfstate
谢谢,非常有用!
/<workspace_key_prefix>/<workspace_name>/<key>
terraform {
backend "s3" {
bucket = "devops"
key = "terraform.tfstate"
region = "us-east-1"
workspace_key_prefix = "tf-state"
}
}