【发布时间】:2023-02-21 18:09:28
【问题描述】:
我有一张地图如下
{
"prod": {
"test1": "value1",
"keytoget": "value2",
"secretsomething": "value3",
},
"demo": {
"somediffkey": "value1",
"anotherdiffkey": "value2",
}
}
在 terraform 资源中,我使用的是 for_each 循环。 我想访问演示地图中的键,例如“somediffkey”。
但我可能不知道密钥名称,并且希望动态访问密钥名称,就像我们访问返回“demo”和“prod”的 each.key 的方式一样。
想看看是否像下面这样
resource "vault_kv_secret_v2" "az-secret" {
# count = length(locals.environments)
mount = vault_mount.kvv2-azure.path
for_each = local.environments
name = each.key
cas = 1
delete_all_versions = true
data_json = jsonencode(
{
(each.key) = each.value # here the json should have somediffkey = value1 and then anotherdiffkey = vaulue2
}
)
}
基本上资源应该有内部地图数据作为 json 中的键值对 这可能吗?请求帮助。
【问题讨论】:
-
“正在使用 for_each 循环。” - 什么 for_each 循环?你得到什么错误?
-
@Marcin 没有错误,但不是预期的结果。我们应该将内部地图作为资源中的键值。基本上是否可以在不知道名称的情况下动态访问内部映射的键,即我不想访问值作为 each.value["somediffkey"] 因为“somediffkey”将作为输入给出并且可能不同。
标签: terraform