Как обновить минимальное и максимальное количество запущенных задач в 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 после часа
Надеюсь, это поможет:)