我正在尝试使用boxfuse在AWS上运行我的Spring启动应用程序。 我遵循了Spring的following教程(第54.4节)和Boxfuse的Get Started。
当我运行以下命令时
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的免费计划,这可能是问题吗?
答案 0 :(得分:1)
Boxfuse确保您的应用程序的正确版本保持正常运行,并且不会被错误的应用程序取代。只有当新版本通过Boxfuse的健康检查时,Boxfuse才会重新分配应用程序的弹性IP。一旦完成,Boxfuse将终止旧版本的实例。
验证您的应用的新版本是否正确无误Boxfuse希望新版本的运行状况检查路径返回HTTP 200.
没有执行器的常规Spring Boot应用程序的默认运行状况检查路径是/
。您的应用目前在那里回答404而不是200。
您可以通过多种方式解决此问题:
/
的应用添加一个控制器,当您的应用正确显示时,该控制器会返回HTTP 200. healthcheck.path
更改为在您的应用正确显示时确实应答HTTP 200的其他路径。healthcheck
设置为false
来禁用Boxfuse的运行状况检查(不推荐,因为这样可以有效防止Boxfuse检查您的应用程序是否正确运行)选择其中一个选项,您的应用就会按照您的预期正确显示。