You need to enable JavaScript to run this app. Terraform 模板文件中如何实现部分代码的条件执行?
优惠活动
大模型
产品
解决方案
定价
更多

Terraform 模板文件中如何实现部分代码的条件执行?

Terraform 模板文件条件渲染实现方案

你之前的写法错误是混用了变量插值语法和条件控制语法:${}是Terraform模板中用于输出变量值的标记,不能直接放在条件判断的语句块内,且条件控制块的起始标记错误。

正确模板写法

将test.sh.tpl修改为如下内容即可:

#!/bin/bash
%{ if test_key != "" ~}
echo ${test_key} > /opt/test_key.properties
%{ endif ~}

语法说明

  • Terraform模板的条件控制语句必须以%{开头、}结尾,和变量插值用的${}语法完全区分
  • 条件判断中直接引用变量名即可,不需要额外加${}包裹
  • 控制符前后加~是可选配置,作用是自动修剪对应方向的空白/换行,避免生成的Shell脚本出现多余空行
  • 如果你的test_key变量可能为null值,建议把判断条件调整为%{ if test_key != null && test_key != "" ~},覆盖空值、空字符串两种场景

调用示例(可选)

如果使用Terraform官方推荐的templatefile函数调用模板,参考写法如下:

resource "local_file" "generated_script" {
  content = templatefile("${path.module}/test.sh.tpl", {
    test_key = var.test_key # 替换为你实际的test_key赋值逻辑
  })
  filename = "${path.module}/output/test.sh"
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 05:06:02