Terraform Locals
Terraform Locals(ローカル変数)は、式に名前を割り当てることができる強力な機能です。これにより、開発者は式全体を繰り返し書く代わりに、モジュール内で名前を複数回使用することができます。この機能により、Terraformコードの可読性と保守性が大幅に向上し、インフラストラクチャの設定を管理しやすくなります。
Terraform Localsの宣言
Terraformでは、ローカル変数はlocals
ブロックで宣言されます。各ローカル変数には名前と式が割り当てられます。ローカル変数の宣言の基本的な構造は次のようになります。
locals {
local_name = expression
}
関連するローカル変数のグループ化
関連するローカル変数は、同じlocals
ブロック内で一緒に宣言することで、組織化と可読性を向上させることができます。特に、多数のローカル変数が使用される複雑なモジュールで作業する場合に便利です。
locals {
service_name = "forum"
owner = "Community Team"
}
ローカル式で他の値を参照
Terraformのローカル変数の強力な機能の1つは、ローカル式内で他の値を参照することができることです。これには変数、リソース属性、さらには他のローカル変数も含まれます。他の値を参照して使用するこの機能により、より複雑な変換と組み合わせが可能となり、複雑で微妙なインフラストラクチャの設定を作成するのに役立ちます。
locals {
instance_ids = concat(aws_instance.blue.*.id, aws_instance.green.*.id)
}
Terraformでのローカル変数の使用
ローカル変数が宣言された後、local.<NAME>
の構文を使用して式内で参照することができます。この構文により、Terraformはローカル変数と他の種類の式を区別することができます。
以下は、resource
ブロック内でローカル変数を参照する方法の例です。
resource "aws_instance" "example" {
tags = local.common_tags
}
ローカル変数のスコープ
ローカル変数は、それらが宣言されたモジュール内の式内でのみアクセスできることに注意してください。このスコープの制限により、クリーンで整理されたコードを維持し、異なるモジュールやネストされたモジュール間の潜在的な衝突を避けることができます。
ローカル変数の使いどき
Terraformのローカル変数は、設定で同じ値や式を繰り返し使用する必要がある場合に非常に有益です。ただし、全ての繰り返し値を置き換えるためのものではありません。単一の値や結果が複数の場所で使用され、将来的に変更される可能性が高い状況で冗長性を減らすために設計されています。
参考