2017-05-10 9 views
3

リソースがcountパラメータを使用して複数のリソースをterraformで指定する場合、リソースインスタンスの専用フィールドのリスト/配列を提供する簡単な構文があります。例mapのリストをterraformの選択されたフィールド値のリストにマップ

aws_subnet.foo.*.id 

ため

ので、マップの例のリストに、複雑な構造を持つ変数を宣言することが可能であるバージョンのかなりの数。配列要素のフィールド値の配列への配列の投影:

variable "data" { 
    type = "list" 
    default = [ 
    { 
     id = "1" 
     ... 
    }, 
    { 
     id = "10" 
     ... 
    } 
    ] 
} 

私は、マルチリソースのために何ができるvaraiblesために同じことをする可能性を探しています。

は残念ながら

var.data.*.id 

リソースの場合と同様に動作しません。これを行う可能性はありますか?

答えて

2

執筆時点では、Terraformは補間言語で一般化された投影機能を備えていません。 「スプラット構文」は、リソースの特殊なケースとして実装されています。

深い構造は可能ですが、まだ使い慣れていないので、物事を比較的平らにすることをお勧めします。将来、この種のものをより使いやすくするために、新しい言語機能が追加される可能性があります。

2

template_fileがお手伝いします。

data "template_file" "data_id" { 
    count = "${length(var.data)}" 
    template = "${lookup(var.data[count.index], "id")}" 
} 

次に、値が "id"のリスト"${data.template_file.data_id.*.rendered}"が表示されます。

あなたはこの

"${data.template_file.data_id.*.rendered[0]}" 

や機能素子を介して()

"${element(data.template_file.data_id.*.rendered, 0)}" 
のような指標によって、その要素を取得することができます
関連する問題