Если у меня есть следующая 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).