ОШИБКА: не удалось запустить приложение - Spring boot + Boxfuse/AWS

Я пытаюсь запустить загрузочное приложение Spring на AWS с помощью boxfuse. Я следовал следующему уроку из Spring (раздел 54.4) и также начала с Boxfuse.

Когда я запускаю следующую команду

boxfuse run target\digigram-0.1.0.jar -env=prod

я получаю следующие строки

Waiting for AWS to boot Instance i-74fe7fc8 and Payload to start at http://52.28.94.159:8080/ ...
WARNING: Healthcheck (http://52.28.94.159:8080/) returned 404 instead of 200. Retrying for the next 120 seconds ...
Terminating instance i-74fe7fc8 ...

И это заканчивается

Destroying Security Group sg-0ed6f667 ...
ERROR: Deployment of pantera160/digigram:0.0.0.1453900589995 failed in prod:Payload of Instance i-74fe7fc8 came up at http://52.28.94.159:8080/
with HTTP 404 (expected 200) => ensure your application responds with an HTTP 200 at http://52.28.94.159:8080/ or adjust the healthcheck configuration (healthcheck.path, healthcheck.timeout, ...) to fit your application
ERROR: Running pantera160/digigram:0.0.0.1453900589995 failed!

Я не понимаю, в чем проблема. Должен ли я что-то изменить в AWS или в моем приложении или...

Любая помощь будет принята с благодарностью.

НОТА:
Я работаю по бесплатному плану для AWS, может ли это быть проблемой?

1 ответ

Решение

Boxfuse гарантирует, что правильная версия вашего приложения будет работать и не будет заменена плохой. Только когда новая версия проходит проверку работоспособности Boxfuse, Boxfuse переназначает ей Elastic IP приложения. Как только это будет завершено, Boxfuse завершает работу экземпляра старой версии.

Чтобы убедиться, что новая версия вашего приложения работает правильно, Boxfuse ожидает, что путь проверки работоспособности экземпляра новой версии вернет HTTP 200.

Путь проверки работоспособности по умолчанию для обычного приложения Spring Boot без привода: /, Ваше приложение в настоящее время отвечает 404 вместо 200.

У вас есть несколько вариантов, чтобы это исправить:

  • Добавьте контроллер в ваше приложение, сопоставленное с / который возвращает HTTP 200, когда ваше приложение работает правильно.
  • Изменить Boxfuse's healthcheck.path на другой путь, который действительно отвечает HTTP 200, когда ваше приложение подходит правильно.
  • Отключите проверки работоспособности Boxfuse, установив healthcheck в false.

Выберите любой из этих параметров, и ваше приложение будет работать правильно, как вы ожидаете.

Другие вопросы по тегам