我正在尝试创建以下资源:
resource "newrelic_alert_policy" "rpm_production_alert_policy" {
name = "RPM (Production) Alert Policy (Terraform)"
incident_preference = "PER_CONDITION"
}
resource "newrelic_alert_channel" "rpm_production_slack" {
name = "RPM Production Slack (Terraform)"
type = "slack"
config {
channel = "rpm-terrarelic"
url = "URLGOESHERE (obfuscated)"
}
}
resource "newrelic_alert_policy_channel" "rpm_production_alert_policy_slack" {
policy_id = newrelic_alert_policy.rpm_production_alert_policy.id
channel_ids = [
newrelic_alert_channel.rpm_production_slack.id
]
}
resource "newrelic_nrql_alert_condition" "median_duration" {
policy_id = newrelic_alert_policy.rpm_production_alert_policy.id
name = "median_duration"
description = "Alert when transactions are taking too long (this is a test description)"
nrql {
query = "SELECT median(duration) from Transaction where team = 'rpm' facet name since 1 month ago limit 500"
evaluation_offset = 3
}
critical {
operator = "above"
threshold = 2
threshold_duration = 60
threshold_occurrences = "AT_LEAST_ONCE"
}
violation_time_limit_seconds = 3600
value_function = "single_value"
}
当我评论出
newrelic_nrql_alert_condition
资源和运行
terraform apply
用我的New Relic API密钥和
-var-file
标志,则资源已成功创建。但当我取消评论
newrelic_nrql_警报_状态
如果重新运行该命令,则会出现以下错误:
newrelic_nrql_alert_condition.median_duration: Creating...
â·
â Error: Validation Error
â
â with newrelic_nrql_alert_condition.median_duration,
â on foobar.tf line 22, in resource "newrelic_nrql_alert_condition" "median_duration":
â 22: resource "newrelic_nrql_alert_condition" "median_duration" {
â
âµ
这个
{
在最后一行(
22: resource "newrelic_nrql_alert_condition" "median_duration" {
)是下划线,这意味着这就是验证错误所在,但我看不出这个资源语句与对某些关键字具有不同值的相同语句之间有任何偏差,例如
nrql.query
因此,从表面上看,错误消息似乎没有太大帮助。
我尝试了不同的价值观
name
资源的参数,认为New Relic中的警报条件可能存在唯一性约束,但这不起作用。
我尝试将有问题的资源块移到文件的顶部,以防该错误是文件前面语法问题的一个障碍,但随后我看到了相同的错误消息,但引用的是第1行,而不是第22行。这告诉我问题其实出在这个资源块上,而这个错误并不是在转移视线。
我在谷歌上搜索可以解释不同类型验证错误的文档,但我找不到任何文档。
有人知道我做错了什么吗?
编辑:
当我跑的时候
terraform validate
对于这个模块,我得到了信息
Success! The configuration is valid.
.