Как я могу прикрепить уведомление SNS к aws_appautoscaling_policy для отслеживания цели ECS в terraform? - PullRequest
0 голосов
/ 29 мая 2018

Если у меня есть следующая terraform и доступна тема ARN для SNS, есть ли способ прикрепить событие уведомления о облачных часах к сигналам тревоги, создаваемым AWS под крышками?

resource "aws_ecs_service" "service_definition" {
  name                               = "${var.servicename}"
  cluster                            = "${var.name}"
  task_definition                    = "${var.task_definition_arn}"
  desired_count                      = "${var.desired_count}"
  deployment_minimum_healthy_percent = "${var.deployment_minimum_healthy_percent}"

  ordered_placement_strategy {
    field = "attribute:ecs.availability-zone"
    type  = "spread"
  }
}

resource "aws_appautoscaling_target" "ecs_target" {
  max_capacity       = "${var.container_max_count}"
  min_capacity       = "${var.desired_count}"
  resource_id        = "service/${var.clustername}/${var.servicename}"
  role_arn           = "${var.ecs_iam_role}"
  scalable_dimension = "ecs:service:DesiredCount"
  service_namespace  = "ecs"

  depends_on = ["aws_ecs_service.service_definition"]
}

resource "aws_appautoscaling_policy" "ecs_scale-memory" {
  name               = "${var.servicename}_scale-memory"
  policy_type        = "TargetTrackingScaling"
  resource_id        = "service/${var.clustername}/${var.servicename}"
  scalable_dimension = "ecs:service:DesiredCount"
  service_namespace  = "ecs"

  target_tracking_scaling_policy_configuration {
    target_value       = "${var.target_container_memory_percent}"
    scale_in_cooldown  = "${var.target_scalein_cooldown_seconds}"
    scale_out_cooldown = "${var.target_scaleout_cooldown_seconds}"

    predefined_metric_specification {
      predefined_metric_type = "ECSServiceAverageMemoryUtilization"
    }
  }

  depends_on = ["aws_appautoscaling_target.ecs_target"]
}

AWS создает два сигнала тревогидля события отслеживания:

  • Значение службы TargetTracking / имя-кластера / имя_службы-AlarmHigh-GUID
  • Значение службы-цели-имя-кластера / имя_службы-AlarmLow-GUID

У них есть действия для увеличения до желаемого количества с помощью прикрепленного ecs_target.Я просто хочу прикрепить (через Terraform) уведомление SNS для них (как можно было бы сделать для события масштабирования EC2).

1 Ответ

0 голосов
/ 29 мая 2018

Поскольку действия определены как часть ресурса aws_cloudwatch_metric_alarm, они не могут управляться независимо.Даже aws cli эквивалент требует действий как часть настройки будильника.Поскольку в вашем случае эта часть абстрагирована, вы не можете добавить тему оповещения SNS.Ваш лучший вариант, вероятно, создает дополнительный сигнал тревоги для каждого, который уведомляет тему SNS.Вы можете использовать describe-alarms, чтобы получить представление о том, как настроены встроенные сигналы тревоги, а затем скопировать их в Terraform.

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