メインコンテンツにスキップ

ローカル値

ローカル値は、に名前を割り当て、モジュール内で式を繰り返す代わりに、その名前を複数回使用できるようにします。

従来のプログラミング言語に精通している場合は、モジュールを関数定義と比較すると理解しやすいでしょう。

  • 入力変数は関数の引数のようなものです。
  • 出力値は関数の戻り値のようなものです。
  • ローカル値は関数のテンポラリローカル変数のようなものです。

ローカル値の宣言

関連するローカル値のセットは、単一の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.<NAME>として参照できます。

コードブロック
resource "aws_instance" "example" {
# ...

tags = local.common_tags
}

ローカル値は、宣言されたモジュール内の式でのみアクセスできます。

ローカル値を使用する場合

ローカル値は、構成で同じ値または式を複数回繰り返すのを避けるのに役立ちますが、使いすぎると、使用されている実際の値が隠蔽され、将来の保守担当者にとって構成が読みにくくなる可能性があります。

ローカル値は、単一の値または結果が多くの場所で*使用*され、*かつ*その値が将来変更される可能性が高い場合にのみ、適度に使用してください。一元管理された場所で値を簡単に変更できることが、ローカル値の主な利点です。