Javascript AWS自动缩放策略在成功缩放后失败:未能执行自动缩放操作:未找到度量值的步长调整

Javascript AWS自动缩放策略在成功缩放后失败:未能执行自动缩放操作:未找到度量值的步长调整,javascript,amazon-web-services,terraform,amazon-cloudwatch,autoscaling,Javascript,Amazon Web Services,Terraform,Amazon Cloudwatch,Autoscaling,在Terraform v13中创建自动缩放策略和cloudwatch报警资源时,它们创建得很好。但是,在对端点进行负载测试时,它们成功地扩展了实例,但当CPU利用率在一段时间内达到所需的%时,却无法进行缩减。错误如下所示: “historySummary”:“未能执行自动缩放操作:未找到度量值[5.99763732496649,2.7634547331059975]和违约增量-4.00236267503351的步长调整” 下面列出了地形资源: 自动缩放策略- resource "aws

在Terraform v13中创建自动缩放策略和cloudwatch报警资源时,它们创建得很好。但是,在对端点进行负载测试时,它们成功地扩展了实例,但当CPU利用率在一段时间内达到所需的%时,却无法进行缩减。错误如下所示:

“historySummary”:“未能执行自动缩放操作:未找到度量值[5.99763732496649,2.7634547331059975]和违约增量-4.00236267503351的步长调整”

下面列出了地形资源:

自动缩放策略-

resource "aws_appautoscaling_policy" "frontend_down" {
  name               = "${var.name}_frontend_scale_down"
  service_namespace  = "ecs"
  resource_id        = "service/${aws_ecs_cluster.main.name}/${aws_ecs_service.frontend.name}"
  scalable_dimension = "ecs:service:DesiredCount"

  step_scaling_policy_configuration {
    adjustment_type         = "ChangeInCapacity"
    cooldown                = 30
    metric_aggregation_type = "Maximum"

    step_adjustment {
      metric_interval_lower_bound = 0
      scaling_adjustment          = -1
    }
  }

  depends_on = [aws_appautoscaling_target.frontend_target]
}
云表报警器-

resource "aws_cloudwatch_metric_alarm" "frontend_service_cpu_low" {
  alarm_name          = "${var.name}_cpu_utilization_low_fe"
  comparison_operator = "LessThanOrEqualToThreshold"
  evaluation_periods  = "2"
  metric_name         = "CPUUtilization"
  namespace           = "AWS/ECS"
  period              = "60"
  statistic           = "Average"
  threshold           = "10"

  dimensions = {
    ClusterName = var.ecs_cluster_name
    ServiceName = var.ecs_service_name_frontend
  }

  alarm_actions = [var.autoscaling_down_arn_frontend]

  tags = {
    Name        = "${var.name}-autoscaling"
    BillingCode = var.billing_code_tag
    Environment = var.environment_tag
  }
}

找出原因,这是因为在缩小策略时,我使用了“度量区间下界”而不是“度量区间上界”。缩小比例时,与报警阈值和cloudwatch度量相比,它提供了一个负增量,因此0成为上限。放大时,您使用下限,因为它提供了正增量

找出了原因,这是因为在缩小策略中,我使用的是“公制间隔\u下限”,而不是“公制间隔\u上限”。缩小比例时,与报警阈值和cloudwatch度量相比,它提供了一个负增量,因此0成为上限。放大时,使用下限,因为它提供正增量。