Ошибка sqsd is in fault mode
может иметь разные причины, например, проверка работоспособности может завершиться с кодом http http 400
или 500
в зависимости от какой-либо основной проблемы.
Чтобы узнать больше, вы можете ssh
в рабочий экземпляр (например, консоль управления EC2> экземпляры> RMB в экземпляре> connect), затем попробуйте проверить http://localhost/
, используя, например, curl
.
В одном случае мы получили аналогичный sqsd is in fault mode
ошибка из нашей рабочей среды, с status 400
.Это произошло из-за неправильного значения ALLOWED_HOSTS
в нашем (Django) settings.py
.
В другом случае у нас была похожая проблема с status 500
в нашей рабочей среде после попытки обновления до последней версии.Версия платформы Amazon Linux.Обратите внимание, что наш рабочий env работал без проблем в течение многих месяцев, и мы не изменяли ни версию приложения, ни конфигурацию среды.
Журналы (aws-sqsd/default.log
) для неудачной попытки обновления платформы показывают:
2018-10-19T09:06:52Z healthcheck-err: service healthcheck to URL "http://localhost/health/" failed with http status code "500"
, тогда как журналы с до неудачной попытки обновления показывают это:
2018-10-19T08:38:43Z message: sent to http://localhost:80
Забавнодело в том, что согласно документам AWS , работники не должны даже иметь возможность использовать URL-адреса проверки здоровья (если я правильно понимаю ...):
В среде одного уровня или рабочий Elastic Beanstalk определяет работоспособность экземпляра, отслеживая его состояние экземпляра Amazon EC2.Параметры работоспособности Elastic Load Balancing, , включая URL-адреса проверки работоспособности HTTP, нельзя использовать в этих типах среды. [мой акцент]
Как ни странно, наша рабочая среда была настроена навремя, используя веб-консоль EB, с политикой развертывания «переходя с дополнительным пакетом», используя «обновляемые обновления на основе работоспособности» из выпадающего меню.
Это, кажется, находится в прямом противоречии с цитатой выше, что означает, что наша активная конфигурация фактически недействительна (даже если env успешно работает долгое время).
Достаточно уверенно, если я сейчас пытаюсь что-то изменить (что-либо) в конфигурации среды с помощью веб-консоли EB, я неожиданно получаю сообщение об ошибке, которой никогда не было:
"Недопустимое значение параметра:« Здоровье »(Пространство имен: 'aws: автоматическое масштабирование: updatepolicy: rollupdate', OptionName: 'RollingUpdateType'): скользящие обновления на основе работоспособности нельзя включить для сред рабочего уровня. "
Кроме того," скользящие обновления на основе работоспособности«больше не отображается в раскрывающемся списке« Текущий тип обновления »(хотя он существовал до того, как я попытался применить изменение).
- edit -
Проблема, описанная выше, былаподтверждено поддержкой AWS.