我使用Java在AWS上创建了一个Elastic Beanstalk应用程序。当我运行'eb deploy'时,它能够神奇地在上传的文件中找到我的.jar文件吗? (我正试图揭开魔法部分的神秘面纱)我正在使用Gradle构建我的应用程序,因此我推送到AWS的文件中也有一个gradle-wrapper.jar。我不确定它如何选择运行正确的jar文件。 (在build / libs / myApp.jar下)
当我之前在AWS上运行NodeJS应用程序时,控制台的配置部分中有一个位置,您可以在其中输入Node项目的“运行命令”。所以我知道它正在运行什么命令来启动我的应用程序(非常好)。 AWS上的Java项目没有这样的东西。
我很难找到关于此的任何文档。有谁知道这是如何工作的?
基本上,您的Elastic BeanStalk会为您创建一个运行应用程序的环境。这个环境包括EC2机器,操作系统和一堆其他配置。所以jar实际上是在beanstalk内的EC2机器上运行的。您可以将其视为EC2中发生的java -jar操作(让您轻松理解)。
看看这篇文章:
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/java-se-platform.html
这描述了AWS默认运行Java应用程序的操作。它还讨论了如何通过Procfiles或Buildfiles更好地控制您的应用程序。我最终不得不在我的应用程序中添加一个Procfile以使其正常工作。