参考 : https://developer.hashicorp.com/terraform/language/values/locals
ローカル値はモジュール内で繰り返し使用する値に名前を割り当てることができる機能です。 従来のプログラミング言語に精通している場合、ローカル値は以下のイメージを持つと良いです。
- 入力変数は関数引数のようなものです。
- 出力値は、関数の戻り値のようなものです。
- ローカル値は、関数の一時的なローカル変数のようなものです。
ローカル値の宣言
関連するローカル値のセットは、locals
ブロック内部でまとめて宣言することができます。
locals { service_name = "forum" owner = "Community Team" }
ローカル値の式は、リテラル定数(ベタ張りのこと)に限定されません。 モジュールの他の値を参照して、それらを変換または結合するために使用できます。
locals { # Ids for multiple sets of EC2 instances, merged together instance_ids = concat(aws_instance.blue.*.id, aws_instance.green.*.id) } locals { # Common tags to be assigned to all resources common_tags = { Service = local.service_name Owner = local.owner } }
ローカル変数の呼び出し
ローカル値が宣言されたら、local.変数名
で参照できます。
注:ローカル値はlocals
のブロック(複数)によって作成されますが、あなたは
それらをlocal
(単数系)という名前のオブジェクトの属性として参照します。
変数宣言はlocals
ですが、参照するときに「s」を外しましょう。
resource "aws_instance" "example" { # ... tags = local.common_tags }
ローカル値は、モジュール内の式でのみアクセスできます。
ローカル値の使い所
ローカルの値は、同じ値や表現を繰り返すことを避けるために役立ちます 構成では複数回ですが、過剰に使用すると、 実際の値を隠すことで、将来のメンテナーが読みにくい構成 使用済み。
単一の値、または 結果は多くの場所で使用され、その値はで変更される可能性があります 未来。中央の場所の値を簡単に変更する能力が重要です ローカル値の利点。
https://developer.hashicorp.com/terraform/language/values/locals page:https://minegishirei.hatenablog.com/entry/2024/06/13/192640