terraform: динамический атрибут из переменной (в синтаксисе splat)

В terraform HCL возможно ли динамически ссылаться на атрибут объекта из переменной?

То есть:

variable "attribute" {
  type = "string"
}

data "terraform_remote_state" "thing" {
  not_really_important
}

output "chosen" {
  value = "${data.terraform_remote_state.thing.$var.attribute}"
}

Более конкретно в моей ситуации, я собираюсь сделать это с помощью синтаксиса splat:

variable "attribute" {
  type = "string"
}

data "terraform_remote_state" "thing" {
  count = 3 # really this is also a variable
  not_really_important
}

output "chosen" {
  value = "${data.terraform_remote_state.thing.*.$var.attribute}"
}

Я пробовал такие вещи, как lookup(data.terraform_remote_state.thing, var.attribute) и (для проблемы сплат) lookup(element(data.terraform_remote_state.*, count.index), var.attribute) но они оба жалуются на то, что моя ссылка на атрибут является неполной / в неправильной форме.

0 ответов

Terraform версия 0.12

https://www.terraform.io/upgrade-guides/0-12.html

Вы можете получить доступ к terraform_remote_state выводит напрямую в виде карты.

получить доступ к выходным файлам состояния в виде карты data.terraform_remote_state.thing.outputs

output "chosen" {
  value = "${lookup(data.terraform_remote_state.thing.outputs, "property1")}"
}

Terraform версия 0.11 или ниже

Если у вас есть роскошь изменить outputs переменные в файле состояния вы можете установить интересующую вас переменную в map а затем найдите переменную по индексу.

"outputs": {            
       "thing_variable": {
           "type": "map",
           "value": {
                "property1": "foobar"                        
               }
          }
 }

Затем сослаться на property1 Атрибут в вашей terraform посмотрите на выходную переменную "thing_variable".

 data "terraform_remote_state" "thing" {
 }

output "chosen" {
  #"property1" could be a variable var.attribute = "property1"
  value = "${lookup(data.terraform_remote_state.thing_variable, "property1")}"
}
Другие вопросы по тегам