Как обновить минимальное и максимальное количество запущенных задач в ECS
Я хочу обновить минимальное и максимальное количество задач для службы в ECS в лямбда-функции (python с boto3). Похоже, самым близким является желаемый счет: desiredCount
, но я не думаю, что это то, что я после того, как моя политика автоматического масштабирования все равно изменит это.
Еще немного о моем случае использования.
У меня есть некоторые контейнеры в ECS, которые опрашивают очередь на выполнение заданий, и у меня есть некоторое количество таких, которые всегда работают в рабочее время, но тогда ни у одного из них не заканчивается рабочее время. Когда нагрузка поступает в систему, моя политика автоматического масштабирования будет масштабировать контейнеры, но пользователю придется ждать дольше, чтобы это произошло, когда контейнеров нет, поэтому я хочу, чтобы некоторые всегда были включены в рабочее время.
Я также использую AWS Fargate.
1 ответ
Я полагаю, вам придется сделать это в 2 шага, используя автоматическое масштабирование приложения клиента boto3:
Создайте службу ECS в качестве цели автоматического масштабирования приложения с
register_scalable_target()
напримерMinCapacity=3
а такжеMaxCapacity=100
, Этот вызов вернет масштабируемый targer ARN.Каждый вечер звонок
register_scalable_target()
снова сMinCapacity=0
и каждый рабочий день утром снова сMinCapacity=3
,
Увидеть register_scalable_target()
документация, где прямо говорится:
После регистрации масштабируемой цели вы можете использовать эту операцию для обновления минимальных и максимальных значений для ее масштабируемого измерения.
Ваша политика автоматического масштабирования будет установлена DesiredCapacity
в пределах границ Min/MaxCapacity, где MinCapacity изменится с 0
в 3
в рабочее время и обратно 0
после часа
Надеюсь, это поможет:)