Calendarの4日目の記事です。string)timestamp()title(string)values(map)さいごにTerraform組み込み関数・演算子紹介Terraformは、HCLが持つ組み込み関数と演算子を利用してレシピの高度な抽象化を可能としています。一般的なプログラミング言語に用意されているような関数・演算子と同様に扱うことができ、より柔軟にインフラを運用することができます。www.terraform.io紹介する組み込み関数・演算子この記事では、よく使うものや便利なものをいくつかピックアップして紹介します。全ての関数・演算子を参照したい場合は上記公式ドキュメントの説明を読んでください。%(integerのみ)がサポートされています。サポートされています。<=が数値型にのみサポートされています。false_valのような形で書くことができます。some_boolにはboolean型の値を渡すようにしてください。hostnum)iprangeで与えられたCIDRブロック内で有効なIPアドレスのうちhostnum番目のIPアドレスを返します。hostnumが負の値の場合は後ろから数えてIPアドレスを返します。...)引数で与えられたlist型の値を全て結合したlistを返します。element)listがelementを要素として含んでいる場合にtrueを返します。index)listのindex番目の値を返します。ネストされたリストに対しては正常に振る舞いません。...)一般的なフォーマットストリングと同じ使い方です。Go言語のfmtパッケージにあるSprintf()を使って実装されているので、サポートされている記法もそれに準拠しています。index)の逆で、listの中の指定された要素のindexを返します。ネストされたリストに対しては正常に振る舞いません。list)listの要素をdelimを区切り文字にして結合した文字列を返します。ネストされたリストに対しては正常に振る舞いません。America"length(list)listの要素数を返します。ネストされているリストは1として数えられます。...)引数で受け取った値をlistにして返します。[default])mapの中でkeyに対応する値を返します。keyがない場合はエラーになりますが、defaultが定義されている場合はdefaultを返します。...)2N個の引数を受け取り、奇数番目の引数にそれぞれ次の引数の値を対応づけてmapを生成し返します。奇数番目のkeyになる引数は全てstring型でなければなりません。...)2つ以上のmapを結合したmapを返します。keyが重複している場合、対応する値は順に上書きされていきます。list)とは逆にstringをdelimで区切った文字列のリストを返します。["a,b,c,d,e"]timestamp()関数がコールされたときのタイムスタンプを返します。実行の度に値が変わるので、リソースの作成日時をタグ付けしたい場合やリソースの更新日時を常に記録しておきたいような場合に有用です。2018-12-03T22:58:10Ztitle(string)引数のstringに含まれる全ての単語の頭文字を大文字にした文字列を返します。アルファベットと数字とアンダースコア(_)以外のアスキー文字は文章のセパレータとして認識され、セパレータの前後の文字列は全て別々の単語としてパースされます。"A`A~A!A@A#A$A%A^A&A*A(A)A-A=A+A[A{A]A}A|A;A:A'A,A<A.A>A/A?A"values(map)引数のmapが持つkeyに対応する全ての値をリストにして返します。"values_2"]さいごにまだTerraform自体にバグがいくつか見つかったり、HCL自体に起因するバグがあるせいで関数が予期しない挙動をすることも多々あります。複雑なロジックを仕込むときにはdry-runをするなどして期待通りの値になっているかどうか確認することをオススメします。バイク月別アーカイブリンクPortfolioはてなブログをはじめよう!mic_psmさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。