我想知道是否可以检索显式提供给模块中其他地方的后端配置的字段。
互联网上有很多人询问是否可以使用变量来设置后端。我知道这是不可能的,因为 terraform 执行的操作顺序 - 但我想做相反的事情。
一个易于解释的示例是,如果我想将后端状态存储桶/键传递给资源上的标签。我可以写两次状态键(一次在后端配置中,一次作为变量),但这违反了 DRY 并且可能容易出错或充其量是烦人的。
我理解为什么在后端配置中不可能有变量,但我无法想象任何技术限制来阻止后端配置在模块中的其他地方被引用。我仍然无法找到任何方法来做到这一点,并且试图在 google 上搜索它的人充斥着希望在后端配置中放置变量的人。也许有一个我找不到的简单语法,或者它不受支持,我可以考虑一个功能请求。
那么目前有没有办法做到这一点?
如何将后端配置文件作为 tfvars 文件传递给 terraform apply 或 terraform plan?然后你可以将它作为变量引用。您可以使用 -var-file 参数将多个 tfvars 文件传递给 terraform。
例如 backend-config.tfvars
bucket = "test-bucket"
key = "test/terraform.tfstate"
...
Run Code Online (Sandbox Code Playgroud)
和变量.tf
...
variable "bucket" {
description="backend bucket"
}
variable "key" {
description="backend key"
}
Run Code Online (Sandbox Code Playgroud)
然后你可以初始化 terraform,
terraform init -backend-config=backend-config.tfvars
Run Code Online (Sandbox Code Playgroud)
和
terraform plan -var-file={your varfile} -var-file=backend-config.tfvars
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2473 次 |
| 最近记录: |