如何解决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
作为本地变量,并使用它在存储帐户资源上设置防火墙规则。
我想更改此规则,以便现在
对于 dev 和 qa,允许 ...lower[].id 和 ....upper[].id
仅适用于 uat&prod ....upper[*].id 子网允许。
如何更新本地块以使其成为可能?
解决方法
对于此要求,您需要对变量 env
的值设置限制,即它必须是四个输入 dev,qa,uat,prod
之一且不能为 null。然后你可以像这样改变当地人:
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。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。