【发布时间】:2019-03-08 14:34:47
【问题描述】:
对于一个 terraform 项目,我有以下文件夹结构:
- variables.tf
- cloudsql
- variables.tf
- main.tf
在我定义的高级 variables.tf 文件中:
variable "availability_type" {
default = {
prod = "REGIONAL"
dev = "ZONAL"
}
prod 和 dev 指的是生产和开发工作区。
在cloudsql的具体级别variables.tf中我已经定义了:
variable "availability_type" {
type = "map"
}
最后在 main.tf(cloudsql 下)我使用了变量
availability_type = "${var.availability_type[terraform.workspace]}"
但是,这会导致
module.cloudsql.google_sql_database_instance.master: key "default" does not exist in map var.availability_type in:
${var.availability_type[terraform.workspace]}
cloudsql为什么不继承变量?
【问题讨论】:
-
因为您当前的工作区是
default而不是prod或dev。您可以使用terraform workspace list命令确认这一点。
标签: terraform