v0.11
v0.11以前の構文
便利構文
https://www.terraform.io/docs/configuration/interpolation.html
計算とか制御構文とか便利関数が有る。
element(list, index)
listの要素を取得。
最初の要素のindexは0.
file(path)
content = "${file(path/to/file)}" # ファイルの内容を取り込む
format(format, args, …)
url = "${format("https://%s/%s", var.fqdn, var.path)}"
formatlist(format, args, …)
formatのlist版。 args...
としてlistを受け取り、list値を返す。
urls = "${formatlist("https://%s/", var.fqdn_list)}"
lookup(map, key [, default])
mapの key
に対するvalueを参照する。第3引数に見つからなかったときの default
値を指定することもできる。
1階層のmapは stash["x"]
で良いが、デフォルト値を設定したいときや、2階層のmapでは lookup
を使う必要がある。
v = "${lookup(var.stash["x"], "y", "default-value")}"
keys(map)
mapのキーをソート済みのlistとして返す。See also values
map(key, value, …)
mapを作る。
output "result" {
value = "${map(
"key-1", "${value-1}",
"key-2", "${value-2}",
:
)}"
}
split(delim, string)
文字列をデリミタ文字で分割してlistを返す。
Example:
"${element(split("/", "dir/file"), 1)}" #=> "file"
values(map)
mapの値をlistとして返す。得られる値の順序は、対応するキーのlistが keys
で返される順序と同じになるようである。