You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.23 12:17:43