プログラミング学習サイト

プログラミングの学習を開始される方を対象としたプログラミング入門サイトです。

ローカル値について【Terraform入門】

参考 : 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