地形后端字段是否可以作为变量访问?



我想知道是否可以检索模块中其他地方明确提供给后端配置的字段。

互联网上有很多人问是否可以使用变量来设置后端。 我知道这是不可能的,因为地形执行的操作顺序 - 但我想做相反的事情。

一个易于解释的示例是,如果我想将后端状态存储桶/密钥传递给资源上的标签。 我可以将状态键写入两次(一次在后端配置中,一次作为变量),但这违反了 DRY,并且可能容易出错或充其量很烦人。

我理解为什么后端配置中不可能有变量,但我无法想象任何技术限制来阻止后端配置在模块的其他地方被引用。 我仍然无法找到任何方法来做到这一点,并且试图谷歌它被希望在后端配置中放置变量的人淹没。 也许有一个简单的语法我找不到,或者它可能不受支持,我可以考虑功能请求。

那么目前有没有办法做到这一点呢?

如何将后端配置文件作为 tfvars 文件传递给地形应用或地形规划? 然后,您可以将其引用为变量。 您可以使用 -var 文件参数将多个 tfvars 文件传递给 terraform。

例如 backend-config.tfvars

bucket = "test-bucket"
key = "test/terraform.tfstate"
...

和 variables.tf

...
variable "bucket" {
description="backend bucket"
}
variable "key" {
description="backend key"
}

然后你可以初始化地形,

terraform init -backend-config=backend-config.tfvars

terraform plan -var-file={your varfile} -var-file=backend-config.tfvars

你知道远程状态提供程序吗?您可以将其作为数据资源读回。这就是地形文档所说的。

最新更新