Terraform为存储账户新增属性时触发Invalid index错误求助
Terraform为存储账户新增属性时触发Invalid index错误求助
大家好,我现在遇到一个Terraform的问题想请教下:
我需要给两个已有的存储账户显式添加is_hns_enabled和account_kind这两个配置(设置成默认值就行,主要是为了和其他账户做区分),同时还要新建第三个存储账户。结果现在三个账户在这两个新配置上都触发了同一个错误,下面是其中一个错误的实例:
Error: Invalid index │ │ on storage.tf line 48, in resource "azurerm_storage_account" "storage-account": │ 48: is_hns_enabled = each.value["is_hns_enabled"] │ ├──────────────── │ │ each.value is object with 5 attributes │ │ The given key does not identify an element in this collection value.
补充下背景:那两个已有存储账户本来is_hns_enabled就是默认的false,我只是想显式写出来,结果就报错了。
下面是我的Terraform代码片段:
locals部分:
locals { containers = merge([ for account, account_details in var.storage_accounts : { for container in account_details.containers : "${account}-${container["name"]}" => { "name" = container["name"] "access_type" = container["access_type"] "storage_account_name" = account } } ]...) roles = merge([ for account, account_details in var.storage_accounts : { for role in account_details.roles : "${account}-${role["objectId"]}" => { "storage_account_name" = account "objectId" = role["objectId"] "storage_role" = role["storage_role"] } } ]...) }
存储账户资源定义:
resource "azurerm_storage_account" "storage-account" { for_each = var.storage_accounts name = substr(replace(lower(each.key), "/\\W|_|\\s/", ""), 0, 24) resource_group_name = var.azure["resource_group_name"] location = var.azure["location"] account_tier = each.value["account_tier"] account_kind = each.value["account_kind"] is_hns_enabled = each.value["is_hns_enabled"] account_replication_type = each.value["account_replication_type"] blob_properties { versioning_enabled = each.value["versioning_enabled"] } }
存储账户变量定义(示例):
storage_accounts = { acct1 = { account_tier = "Premium" account_kind = "BlockBlobStorage" account_replication_type = "RAGRS" versioning_enabled = false is_hns_enabled = false roles = [] containers = [ { name = "container1" access_type = "private" } ] } }
麻烦各位帮忙看看问题出在哪了?谢谢!
备注:内容来源于stack exchange,提问作者sam
相关产品推荐
相关产品推荐

