You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Terraform简写IF语句中多OR条件的实现方法咨询

解决Terraform简写条件中多值匹配的问题

嗨,我来帮你搞定这个条件判断的写法!你之前的思路是对的,但Terraform的HCL语法里逻辑或要用||,而且每个条件都得是完整的比较表达式,不能只写一个值哦。

下面给你两种可行的实现方式:

方式一:使用逻辑或运算符(||)

把两个完整的相等判断用||连接起来,这是最直观的写法:

"${terraform.workspace == "test" || terraform.workspace == "preproduction" ? true : false}"

其实这里还可以简化,因为条件本身返回的就是布尔值,所以可以直接写成:

"${terraform.workspace == "test" || terraform.workspace == "preproduction"}"

这样结果和之前的三元表达式完全一样,更简洁。

方式二:使用contains函数(更适合多值场景)

如果以后还要加更多环境名称,用contains函数会更清爽,把要匹配的环境放在一个列表里,然后判断当前workspace是否在这个列表中:

"${contains(["test", "preproduction"], terraform.workspace)}"

这种写法扩展性更好,后续加新环境直接在列表里加字符串就行,不用额外加逻辑判断。

之前你写的"${terraform.workspace == "test" OR "preproduction" ? true : false}"有两个问题:一是Terraform里逻辑或的关键字是||而不是OR,二是第二个条件没有完整的比较逻辑,HCL没法识别单独的"preproduction"作为判断条件~

内容的提问来源于stack exchange,提问作者hock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 16:22:32