Назад | Перейти на главную страницу

Как обновить минимальное и максимальное количество запущенных задач в ECS

Я хочу обновить минимальное и максимальное количество задач для службы в ECS в лямбда-функции (python с boto3). Похоже, что самое близкое - это желаемое количество: desiredCount, но я не думаю, что это то, что мне нужно, так как моя политика автоматического масштабирования все равно это изменит.

Еще немного о моем варианте использования.

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

Я также использую AWS Fargate.

Думаю, вам придется сделать это за 2 шага, используя автоматическое масштабирование приложения клиент boto3:

  1. Создайте службу ECS в качестве целевого объекта автоматического масштабирования приложения с помощью register_scalable_target() например, с MinCapacity=3 и MaxCapacity=100. Этот вызов вернет масштабируемый целевой ARN.

  2. Каждый вечер звонить register_scalable_target() снова с MinCapacity=0 и каждое утро рабочего дня снова с MinCapacity=3.

Увидеть register_scalable_target() документация, где прямо говорится:

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

После этого ваша политика автоматического масштабирования установит DesiredCapacity в пределах Мин. / Макс. границы, где MinCapacity изменится с 0 к 3 в рабочее время и обратно в 0 в нерабочее время.

Надеюсь, это поможет :)