Как назначить оповещения для политик масштабирования в группе масштабирования с помощью aws-sdk

Я использую сценарий ruby, чтобы упростить управление автомасштабированием в AWS EC2. Мне удалось создать AMI, создать LaunchConfigurations, создать ScalingGroups и связать друг с другом.

Я пытаюсь клонировать группу масштабирования, копируя ее конфигурации запуска, балансировщики нагрузки и т. д. и ее политики масштабирования.

Чтобы скопировать его политику масштабирования, у меня есть этот код:

orig_scaling_group.scaling_policies.each do |policy|
  props = Hash[%i(adjustment_type scaling_adjustment cooldown min_adjustment_step alarms).map { |s| [s, policy.send(s)] }.reject { |k, v| v.nil? }]
  clone_scaling_group.scaling_policies[policy.name].put(props)
end

(scaling_groups являются экземплярами AWS::AutoScaling::Group)

Это проходит по исходным политикам масштабирования, извлекает из него данные и устанавливает их как новую политику в группе масштабирования клонов.

Это прекрасно работает, за исключением того, что аварийные сигналы не копируются в новую политику. Я так и не смог найти, в котором можно программно назначить аларм политике масштабирования.

Как мне это сделать?


person Uri Agassi    schedule 26.02.2014    source источник


Ответы (1)


Я так и не смог найти, в котором можно программно назначить аларм политике масштабирования.

Я ограничу свой ответ приведенным выше утверждением.

В SDK AWS Core Ruby в разделе put_metric_alarm-instance_method можно использовать метод alarm_actions. Из упомянутой выше документации:

введите здесь описание изображения

Обратите внимание, что приведенная выше информация относится к SDK AWS CORE Ruby, а не к более ранней версии SDK AWS ruby.

Также для AWS-CLI аналогичные настройки можно найти с помощью put-metric-alarm для опции --alarm-actions.

Не уверен, что это то, что вы ищете, но здесь я определенно вижу программный способ назначения сигнала тревоги политике автомасштабирования.

Надеюсь это поможет.

person slayedbylucifer    schedule 26.02.2014
comment
Нашел соответствующий API в aws-sdk под AWS::CloudWatch::Alarm.put(...), вам также нужно скопировать в него все текущие атрибуты тревоги ... фу. - person Uri Agassi; 26.02.2014