物联网集线器ip过滤规则的地形顺序



我想用terraform部署多个azure云资源。我的问题是azure物联网中心的地形脚本,特别是ip限制规则。根据文档,我可以这样做

resource "azurerm_iothub" "iothubname" {
name                = "somename"
resource_group_name = azurerm_resource_group.someresourcegroup
location            = azurerm_resource_group.somelocation
sku {
name     = "B2"
capacity = "2"
}
fallback_route {
enabled = true
}

ip_filter_rule {
action = "Accept"
ip_mask ="some_ip_range_1"
name = "some_name_1"
}

ip_filter_rule {
action = "Accept"
ip_mask ="some_ip_range_2"
name = "some_name_2"   }

ip_filter_rule {
action = "Accept"
ip_mask ="some_ip_range_3"
name = "some_name_3"
}

ip_filter_rule {
action = "Reject"
ip_mask ="0.0.0.0/0"
name = "everything_else"
}

}

一切都很好,除了ip规则的顺序与上面不一样,在我的情况下,我绝对希望最后一个规则是azure上优先级最低的规则。Azure IoT hub按顺序应用过滤规则。

如何执行ip过滤器的特定顺序?

你可以尝试使用动态块

https://www.terraform.io/docs/configuration/expressions/dynamic-blocks.html

文件main.tf

resource "azurerm_iothub" "iothubname" {
name                = "somename"
resource_group_name = azurerm_resource_group.someresourcegroup
location            = azurerm_resource_group.somelocation
sku {
name     = "B2"
capacity = "2"
}
fallback_route {
enabled = true
}
dynamic "ip_filter_rule" {
for_each = var.ip_filter_rule_list
content {
action = ip_filter_rule.value.action
ip_mask = ip_filter_rule.value.ip_mask
name = ip_filter_rule.value.name
}
}
}

文件variables.tf

variable "ip_filter_rule_list" {
type = list
default = []
}

修复地形提供程序azurerm v2.57.0

https://github.com/terraform-providers/terraform-provider-azurerm/pull/11390

最新更新