从s3导入状态时的动态工作区选择



我使用下面的terraform数据源从s3导入共享状态。Terraform给了我错误";在给定的后端中没有找到给定工作空间的存储状态";。我希望terraform能占据工作空间;dev-use1";因为我已经使用CCD_ 1设置了工作空间。

data "terraform_remote_state" "shared_jobs_state" {
backend = "s3"
config = {
bucket               = "cicd-backend"
key                  = "analyticsjobs.tfstate"
workspace_key_prefix = "pipeline/v2/db"
region               = "us-east-1"
}
}

版本=Terraform v1.1.9 on darwin_arm64

通过设置TF_LOG="DEBUG";。我可以看到s3api调用给出了404错误。从请求xml中,我可以看到前缀是错误的。作为一种变通方法,我对数据源进行了以下更改。不确定这是推荐的方法,但它有效。文件对此不太清楚https://www.terraform.io/language/state/remote-state-data

data "terraform_remote_state" "shared_jobs_state" {
backend = "s3"
config = {
bucket               = "cicd-backend"
key                  = "pipeline/v2/db/${terraform.workspace}/analyticsjobs.tfstate"
region               = "us-east-1"
}
}

最新更新