Terraform:我可以设置变量类型 = 任何 dict/object
Terraform: Can I set variable type = any dict/object
有没有办法允许任何类型的 dictionary/object 作为输入变量?
我有一个用 lambda 创建 cron 表达式的模块,我正在尝试添加一个变量来接收字典以传递到资源调用中。
我只想允许任何长度的任何字典。使用任何类型的键和值。
最初,我只试过:
variable vars {
type = object
}
但这是不允许的。
现在我的类型是空的,所以它可以接受任何东西,但这似乎不是一个好习惯。
理想情况下,这将是复杂类型 map(any)
以指定它必须是具有 any
类型嵌套的 map
。但是,您声明:
I'd like just allow any dictionary of any length. With any type for the keys and values in it.
不幸的是,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
类型,这是限制最少的类型,也是您声明不想要的类型,但在那种情况下这是您唯一的选择。
有没有办法允许任何类型的 dictionary/object 作为输入变量?
我有一个用 lambda 创建 cron 表达式的模块,我正在尝试添加一个变量来接收字典以传递到资源调用中。
我只想允许任何长度的任何字典。使用任何类型的键和值。
最初,我只试过:
variable vars {
type = object
}
但这是不允许的。
现在我的类型是空的,所以它可以接受任何东西,但这似乎不是一个好习惯。
理想情况下,这将是复杂类型 map(any)
以指定它必须是具有 any
类型嵌套的 map
。但是,您声明:
I'd like just allow any dictionary of any length. With any type for the keys and values in it.
不幸的是,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
类型,这是限制最少的类型,也是您声明不想要的类型,但在那种情况下这是您唯一的选择。