for-loop - Terraform - 根据内部地图的值迭代地图地图
问题描述
我正在尝试根据地图内部地图的值创建资源。如果该特定值为 true,则创建资源
请在下面找到代码:
variable "ip_restrictions" {
type = map(map(string))
default = {
test01 = {
name = "test01"
start_ip_address = "0.0.0.0"
end_ip_address = "0.0.0.0"
is_firewall = false
},
test02 = {
name = "test02"
start_ip_address = "0.0.0.0"
end_ip_address = "0.0.0.0"
is_firewall = true
}
}
}
resource "azurerm_sql_firewall_rule" "sql_firewall_rules" {
for_each = {
for restr in var.ip_restrictions :
restr => restr
if restr.is_firewall == true
}
name = each.value.name
resource_group_name = azurerm_resource_group.rg.name
server_name = azurerm_sql_server.sqls.name
start_ip_address = each.value.start_ip_address
end_ip_address = each.value.end_ip_address
}
解决方案
你的正确形式for_each
应该是:
for_each = {
for key, restr in var.ip_restrictions :
key => restr if restr.is_firewall == "true"
}
这将过滤掉所有带有is_firewall
of 的记录false
。
推荐阅读
- javascript - 使用 JavaScript 从表中删除
- android - 使用 LibVLC 在 android 应用程序中播放 YouTube 视频
- google-sheets - 我正在尝试使用 vlookup 作为条件格式公式
- debugging - 如何调试无头电子预加载脚本失败?
- c++ - write_imagef 似乎没有改变任何值
- laravel - htaccess 文件编辑以同时使用 laravel 和 php 网站
- docker - 用于 Postgre、Cordite、Corda 节点和后端服务器的 docker-compose 文件
- rust - 如何从构建脚本中获取命令的输出?
- python - 我是 python 新手,正在努力学习它,我不明白为什么一个结果给了我一个不同的结果
- python - numpy.convolve 和 scipy.ndimage.convolve1d 的区别?