web-dev-qa-db-ja.com

Terraformのオブジェクトのリストからオブジェクトを取得する方法は?

次のオブジェクト変数のリストがあります。

variable "objects" {
  type = "list"
  description = "list of objects
  default = [
      {
        id = "name1"
        attribute = "a"
      },
      {
        id = "name2"
        attribute = "a,b"
      },
      {
        id = "name3"
        attribute = "d"
      }
  ]
}

Id = "name2"の要素を取得するにはどうすればよいですか?

13
votaroe

次の式を使用して、id = "name2"のマップを取得します。

var.objects[index(var.objects.*.id, "name2")]

簡単なテストのために、次のワンライナーをterraformコンソールで実行します。

[{id = "name1", attribute = "a"}, {id = "name2", attribute = "a,b"}, {id = "name3", attribute = "d"}][index([{id = "name1", attribute = "a"}, {id = "name2", attribute = "a,b"}, {id = "name3", attribute = "d"}].*.id, "name2")]
1
JRoppert