terraform - if 语句通过 terraform 中的 for_each
问题描述
我正在使用 terraform 0.14.2,我有下一个代码:
resource "aws_backup_vault" "vaultrds" {
for_each = local.ob
name = "vault-${each.value}"
}
locals {
ob = toset([
"es",
"uk"
])
资源通过这个 var 进行迭代,现在我想设置一个条件,如果 var.anyvar 存在,则不会像这样执行上述任务:
anyvar = true
resource "aws_backup_vault" "vaultrds" {
for_each = var.anyvar == true : local.ob
*(don't execute anything)*
name = "vault-${each.value}"
}
有任何想法吗?
谢谢!
解决方案
首先确保如果没有设置变量,则默认值为空。
variable "anyvar" {
default = null
}
然后使用一个动态块来检查它是否不为空。
dynamic "aws_backup_vault" {
for_each = var.anyvar != null ? [1] : []
content {
name = var.name
}
}
推荐阅读
- node.js - 节点调度器重复
- django - Django-Channels AsyncConsumer 不工作
- optimization - 找到得分最高的非重叠序列的子集
- typescript - 为什么我可以使用临时变量来解决 TypeScript 的对象字面量赋值约束?
- ejb - JCA 远程队列 Wildfly Artemis
- silverstripe - 切换主题后无法访问编辑器
- react-native - React Native:将图像并排对齐在一行上,并具有动态数量的图像
- javascript - 短回调函数语法背后的原理
- javascript - pinterest 可以有多个用户定义的事件吗?
- boost-asio - spawn 和 post 如何与 asio 一起工作?