AWS Cloudwatch Alert Terraform

时间:2019-02-20 18:05:49

标签: amazon-web-services terraform amazon-cloudwatch

我目前正在尝试通过Terraform推出AWS cloudwatch指标警报,但是遇到以下错误。

Error applying plan:

1 error(s) occurred:

* aws_cloudwatch_metric_alarm.alarm_name: 1 error(s) occurred:

* aws_cloudwatch_metric_alarm.alarm_name: Creating metric alarm failed: ValidationError: Exactly one element of the metrics list should return data.
    status code: 400, request id: xxxxxxxx-xxxxxxx-xxxxxx\n\nTerraform does not automatically rollback in the face of errors.
Instead, your Terraform state file has been partially updated with
any resources that successfully completed. Please address the error
above and apply again to incrementally change your infrastructure."

这是Terraform代码:

resource "aws_cloudwatch_metric_alarm" "elb_monitor" {
  alarm_name                = "openam-elb-monitor"
  comparison_operator       = "GreaterThanOrEqualToThreshold"
  evaluation_periods        = "2"
  threshold                 = "1"
  alarm_description         = "UnHealthyHostCount for openam elbs"
  insufficient_data_actions = []
  metric_query {
      id = "elb_unhealthy_host_count"
      metric {
          metric_name = "UnHealthyHostCount"
          namespace   = "AWS/ELB"
          period      = "120"
          stat        = "Maximum"
          unit        = "Count"
          dimensions  = {
              LoadBalancerName = "development_lb"
          }
      }
    }
}

为什么会这样?

1 个答案:

答案 0 :(得分:1)

原来是我的配置。编写metric_query嵌套块的方式,您需要定义要作为警报返回的度量查询。由于未配置此设置,因此我收到int[] arrA = new int[10]; Random random = new Random(); for (int i = 0; i <= arrA.Length -1; i++) { arrA[i] = random.Next(1, 15); Console.WriteLine(arrA[i]); } Console.ReadKey(); ,因为默认情况下指标查询用于多个查询。