我刚接触terraform,在文档中查找变量时,它并不能准确地显示我需要的内容,这非常简单。
假设有这样的情况
resource "snowflake_schema" "one" {
database = data.terraform_remote_state.databases.outputs.database_name
name = upper("one")
}
resource "snowflake_schema" "two" {
database = data.terraform_remote_state.databases.outputs.database_name
name = upper("two")
}
resource "snowflake_schema" "three" {
database = data.terraform_remote_state.databases.outputs.database_name
name = upper("three")
}
我想在文件的顶部创建一个变量数据库名称,并将其传递给每个资源,如下所示:
database_name = data.terraform_remote_state.databases.outputs.database_name
resource "snowflake_schema" "one" {
database = database_name
name = upper("one")
}
resource "snowflake_schema" "two" {
database = database_name
name = upper("two")
}
resource "snowflake_schema" "three" {
database = database_name
name = upper("three")
}
在terraform中这样做的正确语法是什么?
发布于 2021-03-08 15:17:56
如果您想将一个属性表达式output赋给一个模块作用域变量,而不能使用inputs直接修改它的值,那么您可以使用Terraform locals。在这种情况下,您将执行如下操作:
locals {
database_name = data.terraform_remote_state.databases.outputs.database_name
}
初始化。然后,您可以引用分配的局部变量值,如下所示:
resource "snowflake_schema" "one" {
database = local.database_name
name = upper("one")
}
就像它是Map类型一样。
https://stackoverflow.com/questions/66531310
复制