我有一个appfig.json文件,其中包含azure应用程序配置的键值详细信息.示例appConfig.json:

[
    {
        "contentType": "",
        "key": "FuncApp:Ihub:Common:D365Api:JobStatusRelativePath",
        "tags": {
        },
        "value": "/api/connector/jobstatus"
    },
    {
        "contentType": "application/vnd.microsoft.appconfig.keyvaultref+json;charset=utf-8",
        "key": "secretName",
        "label": null,
        "tags": {
        },
        "value": "{\"uri\":\"https://iac-key-vault-sandbox2.net/secrets/secretName\"}"
    }
]

现在,在appfig.tf文件中,我希望读取json的内容,并迭代地将值分配给azurerm_app_configuration_key.示例代码

locals {
appConfigData = jsondecode(file("appConfig.json"))
}

resource "azurerm_app_configuration_key" "appConfigKey" {
configuration_store_id = azurerm_app_configuration.appConfiguration.id
for_each = [for element in local.appConfigData: local.appConfigData]
key                    = each.value.key
label                  = each.value.label
value                  = each.value.value
content_type           = each.value.contentType
}

我想了解如何完成这项任务,因为我一直未能做到这一点.我不断收到如下错误:


╷
│ Error: Invalid for_each argument
│ 
│   on terraform_AppConfig.tf line 17, in resource "azurerm_app_configuration_key" "appConfigKey":
│   17:   for_each = [for element in local.appConfigData: local.appConfigData]
│     ├────────────────
│     │ local.appConfigData is tuple with 4 elements
│ 
│ The given "for_each" argument value is unsuitable: the "for_each" argument must be a map, or set of strings, and you have provided a value of type tuple.

推荐答案

这对你来说应该是可行的:

locals {
  appConfigData = jsondecode(file("appConfig.json"))
}

resource "azurerm_app_configuration_key" "appConfigKey" {
  configuration_store_id = azurerm_app_configuration.appConfiguration.id
  for_each               = { for element in local.appConfigData : element.key => element }
  key                    = each.value.key
  label                  = each.value.label
  value                  = each.value.value
  content_type           = each.value.contentType
}

Json相关问答推荐

Azure Data Factory JSON输出格式问题

使用json_query更新事实

来自json的可分析的构建报告

jq:将一个数组与多个数组连接起来

使用 Power BI 中的 Deneb 视觉效果绘制面积图中的 X 轴日期

将 GEOSwift.JSON 转换为 Swift 中的 struct

jq json - 按键名 Select

如何在jolt中使用shift和modify-overwrite-beta

JOLT JSON 将值从一对多转换为一对一

使用 jq 获取特定键的所有父键

C# 合并 2 个几乎相同的 JSON 对象

如何使用 Swiftui 判断 JSON 是否缺少键值对

避免 KeyError 的默认字典键

如何将有向无环图 (DAG) 存储为 JSON?

如何向从文件中检索的 JSON 数据添加键值?

嵌套 JSON:如何向对象添加(推送)新项目?

使用 Retrofit 解析动态密钥 Json 字符串

JSON Schema:验证数字或空值

如何使用 Jackson 的 objectMapper 反序列化接口字段?

如何在本地存储中存储对象数组?