我的地形代码看起来像这样:
locals {
overrides = {
foo = {
connections = {
connection-one = {
bool_setting = "true"
}
connection-two = {
string_value = "primary"
}
}
}
}
my_json = {
"description" = "blah"
"psk" = {
for_each = try(local.overrides.foo.connections, {}) # <-- problem
each.key : random_string.password[each.key]
}
}
}
resource "random_string" "password" {
for_each = try(local.overrides.foo.connections, {})
length = 20
special = true
}
output "json_output" {
value = jsonencode(local.my_json)
}
我知道我的代码是错误的,因为for_each
在我指出问题的地方不允许使用块,但我希望这个片段能够演示我想要实现的目标。
注意:local.overrides
可能并不总是具有该connections
属性,因此try()
.
我想要如下所示的输出:
{
"description": "blah",
"psk": {
"connection-one": "g2rL6IEF1XXp_JL]N<H!",
"connection-two": "EVBQvSj@5a9lo:OZ<S_T"
}
}
我如何在 Terraform 中实现这一目标?