はじめに
Terraformのelementおよびlookup関数は、リストやマップから値を取得するために利用できます。使いこなすことで、コード量が少なくなり、管理がしやすくなります!
element(list, index)
element関数は、指定されたインデックスにあるリスト内の要素を返します。主にリストから値を取得する際に使用されます。この関数を空のリストで使用すると、エラーが発生します。
variable "example_list" {
default = ["a", "b", "c"]
}
output "example_element" {
value = element(var.example_list, 1)
}
この例では、example_elementの出力はbになります。
引数
list (必須)
要素を検索する対象のリストです。リストは、順序付けされた値のコレクションです。
index (必須)
list から取得したい要素のインデックス(0から始まる整数)です。もし、このインデックスがリストの範囲外の場合、エラーが発生します。
lookup(map, key, [default])
lookup関数は、指定されたキーに対応するマップ内の値を返します。キーがマップに存在しない場合、オプションで指定されたデフォルト値を返します。デフォルト値が指定されておらず、キーが存在しない場合、エラーが発生します。この関数は主にマップから値を取得する際に使用されます。
variable "example_map" {
default = {
"a" = "apple"
"b" = "banana"
"c" = "cherry"
}
}
output "example_lookup" {
value = lookup(var.example_map, "b", "default_value")
}
この例では、example_lookupの出力はbananaになります。キーが存在しない場合(例: "d")、出力はデフォルト値(この場合はdefault_value)になります。
これらの関数を組み合わせることで、リストやマップから効果的に値を取得し、Terraform設定の柔軟性を向上させることができます。
引数
map (必須)
検索対象のマップ(またはオブジェクト)です。キーと値のペアが含まれているデータ構造です。
key (必須)
map から取得したい値に関連付けられたキーです。もし、このキーがマップに存在しない場合、default 引数が指定されていればそれが返されます。default 引数が指定されていない場合、エラーが発生します。
[default] (オプション)
オプションの引数で、key が map に存在しない場合に返すデフォルト値です。この引数が指定されていない場合、キーが見つからないとエラーが発生します。