ネストしたオブジェクトを型指定で受け取る - Terraformのきほんと応用
Terraformコードを書く上での小さなTIPSです。
Terraform関連の他の記事は「Terraformのきほんと応用」からどうぞ。
概要
ネストしたオブジェクトをvariablesのtypeで受け取りたい場合はmap型を使います。
コード説明
Terraformを書いていると以下のようなネストしたオブジェクトで設定を定義したくなることがあります。
terraform.tfvars
subnets = {
"application-subnet" = {
cidr = "192.168.10.0/24"
public = true
}
"database-subnet" = {
cidr = "192.168.100.0/24"
public = false
}
}
型なしで受け取ることもできるのですが、構造を定義しておいた方がソースの読みやすさが格段に変わってきます。
main.tf
// 型なしでうけとる
variables typeless-subnets {}
// 型を指定して受け取る
variable subnets {
type = map(object({
cidr = string
public = bool
}))
}
output print-all {
value = var.subnets
}
output print-keys {
value = [for k, v in var.subnets : k]
}
動かしてみる
上記のコードを動かしてみるとネストしたオブジェクトを受け取れていることがわかります。
サンプルコード
この記事で作成したコードはgithub上に公開しています。
Author And Source
この問題について(ネストしたオブジェクトを型指定で受け取る - Terraformのきほんと応用), 我々は、より多くの情報をここで見つけました https://zenn.dev/sway/articles/terraform_tips_nestobjarg著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Collection and Share based on the CC protocol