У меня есть следующий код 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
, который я передаю, уже должен быть списком.Есть ли способ обеспечить список получателей?Это причудливый терраформ?