terraform0.12+ - 在 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”类型的块。
解决方案
推荐阅读
- python - python - 如何使用panda for python同时附加多个列
- svg - SVG 多重变换 - 旋转然后水平平移
- wpf - 当画布在 WPF for VB.Net 中调整大小时,转换坐标以保持比例
- java - 使用 Scanner.next() 方法计算单词
- mysql - Rails 调用同一张表中的不同字段
- android - React Native - 在锁定屏幕上启用通知
- java - AWS 配置获取使用 aws java sdk
- amazon-web-services - 设置多节点 Hadoop Hortonworks 集群
- javascript - 从字符串数组创建对象
- angular - Angular 使用 HttpClient 并向 Get 添加多个参数