是否在模板文件中的Terraforom中有一种方法可以将所有收到的变量传递到其他地方? 我的意思是比bash中的$ @类似。
例如:
resource "template_file" "some_template" {
template = "my_template.tpl")}"
vars {
var1 = "value1"
var2 = "value2"
}
}
然后从渲染文件:
#!/bin/bash
echo "Var1: ${var1}"
echo "Var2: ${var2}"
echo "But I want it in someway similar to this:"
for v in $@; do
echo "$v";
done
答案 0 :(得分:0)
根据文件,没有。
来自https://www.terraform.io/docs/providers/template/d/file.html
模板内插值的变量。注意变量 必须都是原始的。直接引用列表或映射将导致 验证错误。
terraform中的基元是字符串,数字和布尔值。
因此,这意味着您无法传递散列或列表来将所有变量组合在一起。
答案 1 :(得分:0)
使用join并将所有变量作为一个变量传递并在脚本中解析/分割(使用tr
/ IFS
技巧)
join("; ", [var.myvar1, var.myvar2, var.myvar3])
然后
IN="${allvars}"
IFS=';' read -ra ADDR <<< "$IN"
for i in "${ADDR[@]}"; do
echo "$i"
done