如何解决IoT 中心 ip 过滤规则的 Terraform 顺序
我想使用 terraform 部署多个 azure 云资源。我的问题是天蓝色 IoT 中心的 terraform 脚本,特别是 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 中心按顺序应用筛选规则。
如何强制执行特定的 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 = []
}
更新
在 terraform provider azurerm v2.57.0 中修复了错误
https://github.com/terraform-providers/terraform-provider-azurerm/pull/11390
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。