在Azure App Service上部署Spring Boot jar
我在使用Spring Boot API处理Azure应用服务时遇到问题。 我在https://docs.microsoft.com/en-us/java/azure/spring-framework/deploy-spring-boot-java-web-app-on-azure上关注了Microsoft指南,但没有运气远。
应用程序确实启动(我可以看到应用程序在日志文件中启动)但是对应用程序服务URL的http请求总是以超时结束。
我已经读过Azure应用服务只能选择在端口80或8080上运行的嵌入式tomcat服务器,但也没有运气。
该应用程序部署在www根目录中,并且还部署了适当的web.config。
我尝试使用和不使用应用程序服务器运行App Service(Tomcat和Jetty,因为服务器嵌入在应用程序中而不需要),但两种方法都失败了。
我错过了其他一些配置部分吗? 或者这可能与我在azure色上使用的计划类型有关? 也许资源有些问题?
有什么指针吗?
谢谢,
伯特
请使用spring和azure社区给出的以下步骤在azure上部署spring boot app:
1)进入你的app文件夹里面你有pom文件并运行
确保以下插件应该在pom文件中
4.0.0 org.springframework gs-spring-boot 0.1.0 org.springframework.boot spring-boot-starter-parent 1.5.6.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.boot spring-boot-starter-test test 1.8 yyyyMMddHHmmssSSS org.springframework.boot spring-boot-maven-plugin maven-failsafe-plugin integration-test verify com.microsoft.azure azure-webapp-maven-plugin 0.1.5 azure-auth maven-plugin maven-web-app-${maven.build.timestamp} westus 1.8 ftp true ${project.basedir}/target / *.jar ${project.basedir} / web.config
注意:确保您在azure上创建了与其名称相同的Web应用程序
Maven的web应用程序 – $ {} maven.build.timestamp
现在在root上创建名为“web.config”的文件,并在web.comfig中添加jar
现在打开azure CLI并运行以下命令
- mvn清洁包
- mvn spring-boot:运行
确保应用程序在本地工作正常。
如果您有多个与您的ID关联的帐户,请使用以下命令
-
az登录
-
az帐户列表
-
az帐户集 – 订阅XXX-XXX-XXX-XXXXXXXXXXXX
现在您需要在Microsoft Azure中创建“服务主体”
1)打开终端窗口。
2)键入az login,使用Azure CLI登录Azure帐户
3)通过键入az ad sp create-for-rbac –name“vaquarkhan”–password“yourpassword”(vaquarkhan是用户名,yourpassword是服务主体的密码)来创建Azure服务主体。
az ad sp create-for-rbac –name“app-name”–password“password”
注意:如果您收到错误需要更改设置—> 此处
“azure.graphrbac.models.graph_error.GraphErrorException:不允许访客用户执行此操作。”
如果成功
Azure应该打印出类似这样的JSON响应:
{ "appId": "XXX-XXXX-XXX-XXX-XXXX", "displayName": "vaquarkhan", "name": "http://vaquarkhan", "password": "yourpassword", "tenant": "YYY-YYYY-YYY-YYY-YYYY" }
配置Maven以使用Azure服务主体
1)在文本编辑器中打开Maven settings.xml文件(通常位于/etc/maven/settings.xml或$ HOME / .m2 / settings.xml中)。
azure-auth ur key ur tenant YOUR PASSWORD AZURE hwx hwx hwx http://nexus-private.hortonworks.com/nexus/content/groups/public/ public * http://nexus-private.hortonworks.com/nexus/content/groups/public/
2)将本教程上一节中的Azure服务主体设置添加到settings.xml文件中的集合,如下所示:
azure-auth aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa tttttttt-tttt-tttt-tttt-tttttttttttt pppppppp AZURE
3)保存并关闭settings.xml文件。
构建应用程序并将其部署到Azure
1)运行以下命令
- mvn azure-webapp:deploy
-
部署Web应用程序后,请访问Azure门户以对其进行管理。 它将列在App Services中。
-
单击该应用程序。 从那里,您的网络应用程序的公开URL将列在概述部分中
-
确定Web应用程序的URL您可以单击此链接访问Spring Boot应用程序并与之交互。
Azure maven插件文档
注意:网站名称必须是全球唯一的,并且使用应用名称生成,请确保名称应该是唯一的。
为了使Springboot应用程序运行,您需要上传JAR文件并添加web.config文件。
要与服务进行通信,您需要将web.config文件添加到应用服务的site \ wwwroot文件夹中。 由于您已经创建了web.config文件,因此使用Maven添加以下内容并在包中动态包含项目/发布。
${project.basedir}/wwwroot true ${basedir}/target
现在将jar文件和web.config放在Azure App Service中。
你可以检查一下你是否创建了web.config文件,如下所示,
结合官方教程中的步骤和您的实际情况,我提供以下检查点:
要点1:请使用mvn package
在pom.xml
文件所在的目录中构建JAR包。
]
第2点:请确保web.config中配置的jar包名称与上传的jar包名称相同。
web.config中
第3点:请使用FTP将jar files
和web.config
发布到KUDU上的D:\home\site\wwwroot\
目录。
第4点:请确保ApplicationSettings
与您的项目匹配,例如jdk version
, tomcat version
。
如果要部署war
文件,则需要在Azure门户上配置应用服务的ApplicationSettings,然后将war文件上载到路径D:\home\site\wwwroot\webapps
。
此外,您可以检查KUDU上的日志文件: https://
作为参考,请参阅下面的文档和主题。
1. 在Azure App Service中配置Web应用程序
2. 在Azure App Service中创建Java Web应用程序
3.将Springboot部署到Azure App Service 。
希望它能帮到你。
事实certificate,我对这个azure色资源的问题的预感是正确的。 升级资源内存和CPU解决了这个问题。