如何在Terraform的for循环中使用if/else条件判断语句
可以实现,Terraform 的 for 表达式支持嵌套三元判断实现多分支逻辑,完全可以对齐你给出的 Python 代码效果。
对应逻辑的 Terraform 实现示例
你需要生成列表的话,直接使用列表类型的 for 表达式即可,示例代码如下:
variable "custom_var" { type = string default = "" # 替换为你的实际变量 } locals { # 对应你的for+if/else逻辑生成列表 target_list = [ for i in range(10) : # 第一个分支:变量不为空且i>2 var.custom_var != "" && i > 2 ? "i>2时的返回值" : # 第二个分支:变量不为空且i<2 var.custom_var != "" && i < 2 ? "i<2时的返回值" : # 剩余else分支:变量为空,或i=2时的返回值 "else分支的返回值" ] }
逻辑说明
- Terraform 原生支持
range(10)生成0到9的整数序列,和Python的range逻辑一致 - 多分支判断通过嵌套三元运算符
条件 ? 满足时返回值 : 不满足时返回值实现,分支顺序和你给出的Python代码完全对齐 - 你之前已实现的单条件判断,也可以无缝扩展为上述嵌套写法,不需要修改原有循环结构
- 如果你的需求是基于该逻辑批量创建资源,直接把
local.target_list作为count或for_each的参数即可。
内容的提问来源于stack exchange,提问作者adamo89
相关产品推荐
相关产品推荐

