azure-virtual-network - terraform 局部变量中的多个子网定义
问题描述
locals {
fw-subnet-ids = var.env == "dev" || var.env == "qa" ? data.azurerm_subnet.storage-fw-subnets-lower[*].id : data.azurerm_subnet.storage-fw-subnets-upper[*].id
}
我使用fw-subnet-ids
本地 var 并使用它来设置存储帐户资源的防火墙规则。我想更改此规则,以便现在
对于 dev 和 qa 都允许 ...lower[ ].id 和 ....upper[ ].id 仅允许 uat&prod ....upper[*].id 子网。
如何更新本地块以使其成为可能?
解决方案
对于此要求,您需要设置变量值的限制env
,它必须是四个输入之一,dev, qa, uat, prod
并且不能为空。然后你可以像这样改变当地人:
locals {
fw-subnet-ids = var.env == "dev" || var.env == "qa" ? concat(data.azurerm_subnet.storage-fw-subnets-lower[*].id, data.azurerm_subnet.storage-fw-subnets-upper[*].id) : data.azurerm_subnet.storage-fw-subnets-upper[*].id
}
这意味着如果变量env
是两者中的任何一个dev, qa
,甚至两者都返回组合列表 ...lower[].id 和 ....upper[].id 的列表。如果变量env
不是其中之一,它必须是其中之一uat, prod
或两者,然后返回列表 ....upper[*].id。
推荐阅读
- excel - Excel Graph should not have trailing empty cells take up space on axis
- html - 侧边栏Vuejs中“li”的活动类
- python - 只有在完全完成数据采集后才读取 hdf5 文件
- terraform - for k, v 循环在多级映射上进行过滤
- android - 仅在拖动时展开 AppBarLayout,但在甩动时不展开
- google-sheets - 在 google sheet 中正确排序 yyyy/mm 列(1991/10 总是在 1991/01 之后)
- r - 当我将数据框保存为 .txt 时缺少列
- python-requests - 无法使用 python 请求完成我的 SAML 登录
- python - Kivy 自定义小部件绘制数据,无法获取当前小部件尺寸
- sql - 扩展现有的 PostgreSQL 类型