首页 > 解决方案 > 在 for_each 中使用动态块时出现 Terraform 错误

问题描述

我试图将 terraform 升级到 V0.12,并尝试使用 for_each 和动态块来实现更灵活的资源。但有一些错误。主文件

resource "azurerm_eventhub" "entities" {
  for_each = var.eventhub_ns_name
  namespace_name      = each.value.ns_name
  resource_group_name = data.azurerm_resource_group.rg.name
  dynamic "eh_name_associations"{
    for_each = each.value.event_hub
    content {
      name = eh_name_associations.value.eh_name
      partition_count     = eh_name_associations.value.partition_count
      message_retention   = eh_name_associations.value.message_retention
    }
  }
} 

变量.tf

variable "eventhub_ns_name" {
  type = map(object({
    ns_name    = string,
    event_hub  = list(object({
      eh_name  = string
      partition_count = number
      message_retention = number
    })),
  }))
  
  default ={
   eventhub_ns_name001={
    ns_name = "eventhub001",
    event_hub = [{
      eh_name = "survey"
      partition_count = 1
      message_retention = 1
    },
    {
      eh_name = "wechat"
      partition_count = 2
      message_retention = 1
    }],
    },
  }
}

错误:需要参数“partition_count”,但未找到定义。参数“message_retention”是必需的,但没有找到定义。参数“名称”是必需的,但未找到定义。此处不应出现“eh_name_associations”类型的块。

标签: terraform0.12+

解决方案


推荐阅读