terraformに多数のvpcサブネットをプロビジョニングする必要があるとします。各サブネットには、cidr、名前、および使用可能なゾーンがあります。ですから他の設定管理ツールでは、次のようなことをします:Terraformで反復可能なアイテムにアプローチする方法
[
{
"name":"subnet1",
"cidr":"10.0.0.1/24",
"az":"us-west-1a"
},
{
"name":"subnet2",
"cidr":"10.0.0.2/24",
"az":"us-west-1b"
}
]
そして、そのアレイで繰り返し処理します。
Terraformには、私が見る限り、アレイ/オブジェクトという概念はありません。だから、私はちょうどリストアイテムを使用する単一の属性の配列のために:
subnets: ["10.0.0.1/24","10.0.0.2/24"]
しかし、それは私が私が欲しいのサブネットに名前を付けたり、配置することはできません。 私は、私もテラフォームに複数のリストを使用することができますような何かを知っている:
subnet_names: ["subnet1", "subnet2"]
subnets: ["10.0.0.1/24","10.0.0.2/24"]
subnet_az: ["us-west-1a", "us-west-1b"]
をしかし、それは厄介なと直感に反するとして私を打ちます。私が見た最後のオプションは、文字列の醜いリストにtogehterすべてをマッシュすることで、その後、テラフォームにそれらを離れて分割:
things: ["subnet1__10.0.0.1/24__us-west-1a","subnet2__10.0.0.2/24__us-west-2a"]
しかし、単に醜いのthats。
Terraformのアレイ/オブジェクトタイプのリピートはどのように処理できますか?今のところ私はすべてのものを明示的に定義しているため、単純なvpcの定義は300行になります:-(
ここでそれを行う方法が見つかりました:https://blog.gruntwork.io/terraform-tips-tricks-loops-if-statements-and-gotchas-f739bbae55f9#.569pcl61d –
Terraformのドキュメントには、単純なカウントの例がありますそれはあなたが探しているものに近いです。 https://www.terraform.io/docs/configuration/resources.html#using-variables-with-count – logicaldiagram
imhoでは、オブジェクトを使用して設定を完全に制御することはできません。 – Trondh