微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

IoT 中心 ip 过滤规则的 Terraform 顺序

如何解决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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?