Terraform访问空tuple类型模块输出如何设置默认值
解决方案
方案1:使用try函数(最简写法)
try函数会自动捕获第一个参数的求值错误(包括空元组取索引、属性不存在等场景),直接返回后续的兜底值,完全适配你的需求:
gitlab = { token_user = try(module.ac-gitlab[0].token, "你的兜底默认值") }
方案2:使用长度判断+三元表达式(逻辑更透明)
如果需要明确校验模块实例是否存在,可先判断模块返回元组的长度,再决定取值逻辑:
gitlab = { token_user = length(module.ac-gitlab) > 0 ? module.ac-gitlab[0].token : "你的兜底默认值" }
注意事项
- 兜底默认值需和
token属性的类型保持一致,例如token为字符串类型时默认值也需要是字符串,避免Terraform类型校验报错 - 若默认值属于敏感信息,可使用
sensitive()函数包裹默认值,避免其在执行日志、状态文件中明文泄露 - 如果你是使用
for_each而非count声明ac-gitlab模块,可将判断逻辑调整为length(keys(module.ac-gitlab)) > 0适配
内容的提问来源于stack exchange,提问作者onev
相关产品推荐
相关产品推荐

