Список Terraform требует дополнительных квадратных скобок - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть следующий код terraform

data "newrelic_application" "app1" {
  name = "app1"
}
data "newrelic_application" "app2" {
  name = "app2"
}

locals {
  apps = [
    "${data.newrelic_application.app1.id}",
    "${data.newrelic_application.app2.id}"
  ]
}

resource "newrelic_alert_condition" "api-response-time-background" {
  policy_id       = "${newrelic_alert_policy.my-policy.id}"
  name            = "API Response Time Background"
  type            = "apm_app_metric"
  entities        = "${local.apps}"  # <<<< Referenced here
  metric          = "response_time_background"
  condition_scope = "application"

  term {
    duration      = 5
    operator      = "above"
    priority      = "critical"
    threshold     = "1"
    time_function = "all"
  }
}

Я попытался упростить его.Вы можете видеть, что у меня есть некоторые данные, которые я извлекаю из нового поставщика реликвий, затем я создаю массив приложений, на которые я ссылаюсь в newrelic_alert_condition - entity.

Это приводит к следующей ошибке

Error: newrelic_alert_condition.api-response-time-background: apps:` should be a list

Когда я изменяю ресурс так, чтобы сущности представляли собой массив, подобный этому

 resource "newrelic_alert_condition" "api-response-time-background" {
  policy_id       = "${newrelic_alert_policy.my-policy.id}"
  name            = "API Response Time Background"
  type            = "apm_app_metric"
  entities        = ["${local.apps}"]  # <<<< Updated here
  metric          = "response_time_background"
  condition_scope = "application"

  term {
    duration      = 5
    operator      = "above"
    priority      = "critical"
    threshold     = "1"
    time_function = "all"
  }
}

Это работает.Я хочу знать, почему он не работает без квадратных скобок, поскольку local, который я передаю, уже должен быть списком.Есть ли способ обеспечить список получателей?Это причудливый терраформ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...