Как программно остановить контейнер AWS Fargate?

Проблема: у нас есть запланированное задание (AWS Fargate + Lambda + DynamoDB), которое будет выполняться каждый день. Но из-за какой-то проблемы, если контейнер застревает, нам нужно остановить контейнер и снова запустить то же задание.

есть ли способ остановить / приостановить выполнение задачи AWS Fargate?

См. также:  PermissionError: [Errno 13] В доступе отказано при доступе к aws ec2
Понравилась статья? Поделиться с друзьями:
IT Шеф
Комментарии: 3
  1. BabyYoda

    Вы можете сделать это на консоли или через интерфейс командной строки AWS. Вероятно, вы захотите использовать задачу остановки API для этого. Это требует, чтобы вы сначала взяли идентификатор задачи, перечислив задачи в вашем кластере, и отфильтровали их на основе того, что вам нужно фильтровать (определение задачи, я думаю?).

  2. BabyYoda

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

  3. BabyYoda

    Не нужно строить дополнительную логику. Вы можете использовать встроенную функцию HEALTHCHECK. Дополнительную информацию можно найти на странице официальной документации.

    При создании определения ЗАДАЧИ в разделе контейнера вы увидите Advanced Container Configuration. Здесь вы можете указать следующие атрибуты для HEALTHCHECK:

    Attribute Description Default Value
    Command The healthcheck command, it can be one-liner command or a shell script call None
    Interval The time period in seconds between each health check execution between 5 and 300 seconds. 30 seconds
    Timeout The time period in seconds to wait for a health check to succeed before it is considered a failure between 2 and 60 seconds 5 seconds
    Start Period waiting time to before doing health check(container booting time) . It can be 0-300seconds Disabled
    Retries The number of times to retry a failed health check before the container is considered unhealthy between 1 and 10 retries 3 retries

    Таким образом, после указания работоспособности одной линейной команды или скрипта с правильными параметрами проверка работоспособности будет выполняться непрерывно. В зависимости от результата вашей команды HealthCheck, которую вы указали, у вас будет 2 результата после каждой проверки.

    Condition HealthCheck Status
    An exit code of 0 Success
    A non-zero exit code Failure

    Таким образом, после всех последовательных проверок, если контейнер заполнен всеми повторными попытками сбоя, он будет определен как неисправный, затем он будет остановлен и заменен автоматически. Вам не нужен дополнительный контроллер, чекер, тюнер! Просто напишите простую проверку работоспособности, которая действительно показывает, что ваш контейнер исправен.

    Другие побочные условия — позаботиться;

    • Задача должна быть определена в Сервисе.

    • Проверки работоспособности контейнеров поддерживаются для задач Fargate, если вы используете платформу версии 1.1.0 или новее.

    • Проверки работоспособности контейнеров не поддерживаются для задач, которые являются частью службы, настроенной для использования классического балансировщика нагрузки.

Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: