Terraform:我可以设置变量type =任何字典/对象吗?



是否有办法允许任何类型的字典/对象作为输入变量?

我有一个模块来创建cron表达式与lambda,我试图添加一个变量在字典传递到资源调用。

我希望允许任意长度的字典。其中的键和值的任何类型

最初,我只是尝试:

variable vars {
type = object
}

但这是不允许的。

现在我只有一个空的类型,所以它可以接受任何东西,但这似乎不是一个好的做法。

理想情况下,这将是复杂类型map(any),以指定它必须是嵌套any类型的map。但是,您声明:

我希望允许任意长度的字典。其中的键和值的任何类型

不幸的是,有一个规定,用于变量声明的map(any)类型必须在所有条目的值之间具有一致的结构。因此,如果输入结构是一致的,您可以使用map(any),如:

{ 
"one" = { "a_key" = "a_value", "another_key" = "another_value" },
"two" = { "a_key" = "value", "another_key" = "the_value" },
}

然而,一个不一致的结构:

{ 
"one" = { "another_key" = "another_value" },
"two" = { "a_key" = "value", "another_key" = 0 },
}

将强制使用any类型,这是限制最少的类型,也是您声明不想要的类型,但在这种情况下,这是您唯一的选择。

你可以这样写

variable vars {
type = any
}

相关内容

  • 没有找到相关文章

最新更新