terraform - Terraform 中没有 ELSE 的类 IF 条件
问题描述
有没有办法对 Terraform 中的变量内容进行类似 IF 的简单修改?
例如:
resource "null_resource" "validation_stg_l" {
count = "${length(local.dvo)}"
triggers {
dvo_stg = "${ contains( split(",", var.hosted_zones_stg), replace(lookup(local.dvo[count.index], "domain_name"), "*.", "") ) ? local.dvo[count.index] : ///without this part\\\ }"
}
}
这样您就可以修改变量的实际内容并以这种方式只留下所需的内容?
上面的示例只是实现不适用目标的一个想法 - 条件运算符不能与地图值一起使用(这应该在几个月内在 Terraform 版本 0.12 中更改)。
解决方案
我是否认为您正在尝试null_resource
根据它们的域名是否在列表中,有条件地在 的某些索引实例上设置触发器?
如果我对https://www.terraform.io/docs/providers/null/resource.html的理解是正确的,您可以在条件的错误部分使用任何常量字符串来禁用触发器。空字符串将与任何字符串一样好。
文档说该trigger
部分是
任意字符串的映射,当更改时,将强制替换空资源,重新运行任何关联的供应商。
在您的情况下,如果您不希望替换特定的索引资源,只需使用无法更改的字符串。
另一件事。dvo_stg
应该是一个字符串,但您尝试分配它local.dvo[count.index]
,它在其他地方用作地图。那正确吗?
推荐阅读
- python - 使用 Django ORM 从 2 个表中删除记录
- swift - 如何从 Firebase 获取按变量排序的文档(DocumentName 未知)
- c++ - 我无法为 g++ 的 _cplusplus 宏打印值 201703L
- javascript - 使用 React Hooks 将延迟添加到地图中
- python - 熊猫 concat 的替代品
- keycloak - Keycloak 令牌不包括首次登录时映射的用户会话注释
- java - Java使用相对路径而不是绝对路径
- r - R:在 0 和 1 的矩阵中查找包含最多 1 的列集
- r - 使用 summarise() 访问其他 group_by 组
- vue.js - Vue 数据对象限制