好的,所以我有三个.tf
文件:main.tf
我将 azure 声明为提供者,resources.tf
我的所有资源都在其中声明,以及variables.tf
.
我variables.tf
用来存储resources.tf
.
但是,我想使用存储在我的变量文件中的变量来填写后端范围内的字段,如下所示:
main.tf
:
provider "azurerm" {
version = "=1.5.0"
}
terraform {
backend "azurerm" {
storage_account_name = "${var.sa_name}"
container_name = "${var.c_name}"
key = "${var.key}"
access_key = "${var.access_key}"
}
}
变量存储在variables.tf
这样的:
variable "sa_name" {
default = "myStorageAccount"
}
variable "c_name" {
default = "tfstate"
}
variable "key" {
default = "codelab.microsoft.tfstate"
}
variable "access_key" {
default = "weoghwoep489ug40gu ... "
}
我在运行时得到了这个terraform init
:
terraform.backend:配置不能包含插值
后端配置由 Terraform 极早地加载,在 Terraform 的核心可以初始化之前。这是必要的,因为后端决定了该核心的行为。核心是处理插值处理。因此,插值不能用于后端配置。
如果您想参数化后端配置,我们建议使用带有“-backend-config”标志的部分配置来“terraform init”。
有没有办法解决这个问题?我真的希望我的所有密钥/秘密都在同一个文件中......而不是我希望推送到 git 的主要密钥。