快速入门:在 Azure 应用服务中创建 Java 应用
Azure 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 本快速入门演示了如何配合使用 Azure CLI 与用于 Maven 的 Azure Web 应用插件来部署 .jar、.war 或 .ear 文件。 使用选项卡在 Java SE、Tomcat 和 JBoss EAP 说明之间切换。
如果 Maven 不是首选开发工具,请查看面向 Java 开发人员的类似教程:
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
1 - 使用 Azure CLI
在 Azure CLI 中运行本文中的代码。
2 - 创建 Java 应用
克隆示例项目并查看随此版本的文章一起运行的源代码。
提示
尽管应用服务支持较旧版本的 Java,但 booty-duke-app-service
示例项目使用 Java 记录,并且需要 Java 17。 有关 Java 记录的详细信息,请参阅 JEP 395。
git clone https://github.com/Azure-Samples/app-service-java-quickstart
将目录更改为已完成的项目,并从顶层构建。 然后cd
到战利品公爵的子目录。
cd app-service-java-quickstart
git checkout 20230308
mvn clean install
cd booty-duke-app-service
如果看到有关处于拆离的 HEAD 状态的消息,可以放心忽略此消息。 由于不会进行任何提交,拆离的 HEAD 状态是适当的。
3 - 配置 Maven 插件
提示
Maven 插件支持 Java 17 和 Tomcat 10.0。 有关最新支持的详细信息,请参阅 Azure 应用服务上提供 Java 17 和 Tomcat 10.0。
部署到 Azure 应用服务的过程会自动使用 Azure CLI 中的 Azure 凭据。 如果未在本地安装 Azure CLI,Maven 插件会使用 Oauth 或设备登录名来进行身份验证。 有关详细信息,请参阅 Maven 插件的身份验证。
运行接下来显示的 Maven 命令来配置部署。 此命令将帮助你设置应用服务操作系统、Java 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.0:config
如果系统提示“创建新的运行配置”,请选择“Y”。
当系统使用“订阅”选项进行提示时,通过输入在行首打印的数字来选择适当的
Subscription
。当系统提示“Web 应用”选项时,按 Enter 键选择默认选项
<create>
。当系统提示 OS 选项时,按 Enter 键选择 Linux 。
当系统提示“javaVersion”选项时,选择“Java 17”。
当系统提示“定价层”选项时,选择“P1v2”。
最后,出现最后一个提示时按 Enter 来确认所做的选择。
Please confirm webapp properties AppName : booty-duke-1678285507374 ResourceGroup : booty-duke-1678285507374-rg Region : chinanorth2 PricingTier : P1v2 OS : Linux Java Version: Java 17 Web server stack: Java SE Deploy to slot : false Confirm (Y/N) [Y]: Y [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 01:03 min [INFO] Finished at: 2023-03-08T15:25:47+01:00 [INFO] ------------------------------------------------------------------------
确认选择后,该插件会将上述插件元素和必需设置添加到项目的 pom.xml
文件,该文件将 Web 应用配置为在 Azure 应用服务中运行。
pom.xml
文件的相关部分应类似于以下示例。
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
可以直接在 pom.xml
中修改应用服务的配置。 下面列出了一些常见配置:
属性 | 必须 | 说明 | 版本 |
---|---|---|---|
<schemaVersion> |
false | 指定配置架构的版本。 支持的值是:v1 、v2 。 |
1.5.2 |
<subscriptionId> |
false | 指定订阅 ID。 | 0.1.0+ |
<resourceGroup> |
true | 用于 Web 应用的 Azure 资源组。 | 0.1.0+ |
<appName> |
true | Web 应用的名称。 | 0.1.0+ |
<region> |
false | 指定要托管你的 Web 应用的区域;默认值为“chinanorth2”。 支持的区域部分中列出了所有有效区域。 | 0.1.0+ |
<pricingTier> |
false | Web 应用的定价层。 生产工作负荷的默认值为 P1v2,而 B2 是建议用于 Java 开发/测试的最低值 。 有关详细信息,请参阅应用服务定价 | 0.1.0+ |
<runtime> |
false | 运行时环境配置。 有关详细信息,请参阅配置详细信息。 | 0.1.0+ |
<deployment> |
false | 部署配置。 有关详细信息,请参阅配置详细信息。 | 0.1.0+ |
有关配置的完整列表,请参阅插件参考文档。 所有 Azure Maven 插件共享一组常用配置。 有关这些配置,请参阅常用配置。 有关特定于应用服务的配置,请参阅 Azure Web 应用:配置详细信息。
请注意 <appName>
和 <resourceGroup>
的值(在演示中相应地为 helloworld-1590394316693
和 helloworld-1590394316693-rg
),后面会使用它们。
4 - 部署应用
在 pom 文件中准备好所有配置后,只需要一个命令即可将 Java 应用部署到 Azure。
在部署完成后,应用程序就会在 http://<appName>.chinacloudsites.cn/
(在演示中为 http://helloworld-1590394316693.chinacloudsites.cn
)处准备就绪。 在本地 Web 浏览器中打开 url,你应该会看到
恭喜! 现已将第一个 Java 应用部署到应用服务。
5 - 清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不需要这些资源,请从门户删除资源组,或在 CLI 中运行以下命令来这样做:
az group delete --name <your resource group name; for example: helloworld-1558400876966-rg> --yes
此命令可能需要花费一点时间运行。
Azure 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 本快速入门演示了如何配合使用 Azure CLI 与用于 Maven 的 Azure Web 应用插件来部署 .jar、文件或 .war 文件。 使用选项卡在 Java SE 和 Tomcat 说明之间切换。
如果 Maven 不是首选开发工具,请查看面向 Java 开发人员的类似教程:
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
1 - 使用 Azure CLI
在 Azure CLI 中运行本文中的代码。
2 - 创建 Java 应用
克隆 Spring Boot 入门示例项目。
git clone https://github.com/spring-guides/gs-spring-boot
将目录更改为已完成项目。
cd gs-spring-boot/complete
3 - 配置 Maven 插件
提示
Maven 插件支持 Java 17 和 Tomcat 10.0。 有关最新支持的详细信息,请参阅 Azure 应用服务上提供 Java 17 和 Tomcat 10.0。
部署到 Azure 应用服务的过程会自动使用 Azure CLI 中的 Azure 凭据。 如果未在本地安装 Azure CLI,则 Maven 插件将使用 Oauth 或设备登录名进行身份验证。 有关详细信息,请参阅 Maven 插件的身份验证。
运行下面的 Maven 命令来配置部署。 此命令将帮助你设置应用服务操作系统、Java 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.11.0:config
如果系统提示“订阅”选项,通过在行首输入数字来选择适当的
Subscription
。当系统提示“Web 应用”选项时,按 Enter 键选择默认选项
<create>
。当系统提示 OS 选项时,选择 Windows。
当系统提示“javaVersion”选项时,选择“Java 11”。
当系统提示“定价层”选项时,选择“P1v2”。
最后,出现最后一个提示时按 Enter 来确认所做的选择。
摘要输出将类似于下面所示的代码片段。
Please confirm webapp properties Subscription Id : ********-****-****-****-************ AppName : spring-boot-1599007390755 ResourceGroup : spring-boot-1599007390755-rg Region : chinanorth2 PricingTier : P1v2 OS : Windows Java : Java 11 Web server stack : Java SE Deploy to slot : false Confirm (Y/N)? : Y [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 41.118 s [INFO] Finished at: 2020-09-01T17:43:45-07:00 [INFO] ------------------------------------------------------------------------
确认选择后,该插件会将上述插件元素和必需设置添加到项目的 pom.xml
文件,该文件将 Web 应用配置为在 Azure 应用服务中运行。
pom.xml
文件的相关部分应类似于以下示例。
<build>
<plugins>
<plugin>
<groupId>com.microsoft.azure</groupId>
<artifactId>>azure-webapp-maven-plugin</artifactId>
<version>x.xx.x</version>
<configuration>
<schemaVersion>v2</schemaVersion>
<resourceGroup>your-resourcegroup-name</resourceGroup>
<appName>your-app-name</appName>
...
</configuration>
</plugin>
</plugins>
</build>
可以直接在 pom.xml
中修改应用服务的配置。 下面列出了一些常见配置:
属性 | 必须 | 说明 | 版本 |
---|---|---|---|
<schemaVersion> |
false | 指定配置架构的版本。 支持的值是:v1 、v2 。 |
1.5.2 |
<subscriptionId> |
false | 指定订阅 ID。 | 0.1.0+ |
<resourceGroup> |
是 | 用于 Web 应用的 Azure 资源组。 | 0.1.0+ |
<appName> |
是 | Web 应用的名称。 | 0.1.0+ |
<region> |
false | 指定要托管 Web 应用的区域;默认值为“chinanorth2”。 支持的区域部分中列出了所有有效区域。 | 0.1.0+ |
<pricingTier> |
false | Web 应用的定价层。 生产工作负荷的默认值为 P1v2,而 B2 是建议用于 Java 开发/测试的最低值 。 有关详细信息,请参阅应用服务定价 | 0.1.0+ |
<runtime> |
false | 运行时环境配置。 有关详细信息,请参阅配置详细信息。 | 0.1.0+ |
<deployment> |
false | 部署配置。 有关详细信息,请参阅配置详细信息。 | 0.1.0+ |
请注意 <appName>
和 <resourceGroup>
的值(在演示中相应地为 helloworld-1590394316693
和 helloworld-1590394316693-rg
),后面会使用它们。
4 - 部署应用
在 pom 文件中准备好所有配置后,只需要一个命令即可将 Java 应用部署到 Azure。
在部署完成后,应用程序就会在 http://<appName>.chinacloudsites.cn/
(在演示中为 http://helloworld-1590394316693.chinacloudsites.cn
)处准备就绪。 在本地 Web 浏览器中打开 url,你应该会看到
恭喜! 现已将第一个 Java 应用部署到应用服务。
5 - 清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不需要这些资源,请从门户删除资源组,或在 CLI 中运行以下命令来这样做:
az group delete --name <your resource group name; for example: helloworld-1558400876966-rg> --yes
此命令可能需要花费一点时间运行。
Azure 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 本快速入门教程介绍如何使用 Azure 门户将 Java SE 应用部署到 Linux 上的 Azure 应用服务。 若要遵循部署到 Tomcat 或 JBoss EAP 的快速入门,请在上面选择 Maven 选项之一。
本快速入门在免费层中配置应用服务应用,不会产生 Azure 订阅费用。
本快速入门介绍如何在浏览器中进行这些更改,而无需在计算机上安装开发环境工具。
可以在 Mac、Windows 或 Linux 计算机上执行此处的步骤。 安装先决条件后,大约需要五分钟完成这些步骤。
若要完成本快速入门,需要:
- 具有活动订阅的 Azure 帐户。 创建帐户。
- 用于创建存储库分支的 GitHub 帐户。
1 - 创建示例存储库分支
在浏览器中,导航到包含示例代码的存储库。
选择右上角的“分支”。
在“创建新分支”屏幕上,确认“所有者”和“存储库名称”字段。 选择“创建分支”。
注意
这应使你转到新的分支。 分支 URL 将如下所示:
https://github.com/YOUR_GITHUB_ACCOUNT_NAME/java-docs-spring-hello-world
2 - 创建 Azure 资源并配置部署
登录到 Azure 门户。
在搜索框中键入“应用服务”。 在“服务”下选择“应用程序服务” 。
在“应用程序服务”页面上,选择“创建” 。
按如下所述填写“创建 Web 应用”页。
- 资源组:创建名为 myResourceGroup 的资源组。
- 名称:为 Web 应用输入全局唯一名称。
- 发布:选择“代码”。
- 运行时堆栈:选择“Java 11”。
- Java Web 服务器堆栈:选择“Java SE (嵌入式 Web 服务器)”。
- 操作系统:选择“Linux”。
- 区域:选择靠近你的 Azure 区域。
- 应用服务计划:创建名为 myAppServicePlan 的应用服务计划。
若要更改应用服务计划层,请选择“SKU 和大小”旁边的“更改大小”。
在“规格选取器”的“生产”选项卡上,选择 P1V3。 选择页面底部的“应用”按钮。
选择页面底部的“查看 + 创建”按钮。
运行验证之后,请选择页面底部的“创建”按钮。 这将创建 Azure 资源组、应用服务计划和应用服务。
创建 Azure 资源后,选择“转到资源”。
从左侧导航中选择“部署中心”。
在“设置”下,选择“源”。 对于本快速入门,请选择“GitHub”。
在“GitHub”下的部分中,选择以下设置:
选择“保存”。
提示
本快速入门使用 GitHub。 其他持续部署源包括 Bitbucket、本地 Git、Azure Repos 和外部 Git。 FTPS 也是受支持的部署方法。
保存 GitHub 集成后,选择“概述”>“URL”。
Java SE 示例代码在 Azure 应用服务 Linux Web 应用中运行。
祝贺你! 现已使用 Azure 门户将第一个 Java 应用部署到应用服务。
3 - 更新 GitHub 中的分支并部署更改
浏览到 java-docs-spring-hello-world 的 GitHub 分支。
在存储库页面上,按
.
在浏览器中启动 Visual Studio Code。注意
URL 将从 GitHub.com 更改为 GitHub.dev。 此功能仅适用于具有文件的存储库。 它不适用于空存储库。
导航到“src/main/java/com/example/demo/DemoApplication.java”。
编辑 sayHello 方法,使其显示“Hello Azure!”而不是“Hello World!”
@RequestMapping("/") String sayHello() { return "Hello Azure!"; }
从“源代码管理”窗格中,选择“阶段更改”按钮以暂存更改。
输入提交消息,如
Hello Azure
。 然后选择“提交和推送”。完成部署后,返回到“浏览到应用”步骤期间打开的浏览器窗口,然后刷新页面。
4 - 管理新的 Azure 应用
转到 Azure 门户管理创建的 Web 应用。 搜索并选择“应用服务”。
选择 Azure 应用名称。
此时会显示 Web 应用的“概览”页。 可在此处执行基本的管理任务,例如浏览、停止、重启和删除。
Web 应用菜单提供用于配置应用的不同选项。
5 - 清理资源
在使用完该示例应用后,可从 Azure 中删除该应用的所有资源。 这样就不会产生额外费用,并会使你的 Azure 订阅保持整洁。 删除资源组还会删除资源组中的所有资源,这也是为应用删除所有 Azure 资源的最快方法。
在应用服务的“概述”页面中,选择前面创建的资源组。
在资源组页中,选择“删除资源组”。 确认资源组名称,以完成资源删除。
Azure 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 本快速入门教程介绍如何使用 Azure 门户将 Java SE 应用部署到 Windows 上的 Azure 应用服务。 若要遵循部署到 Tomcat 或 JBoss EAP 的快速入门,请在上面选择 Maven 选项之一。
本快速入门在免费层中配置应用服务应用,不会产生 Azure 订阅费用。
本快速入门介绍如何在浏览器中进行这些更改,而无需在计算机上安装开发环境工具。
可以在 Mac、Windows 或 Linux 计算机上执行此处的步骤。 安装先决条件后,大约需要五分钟完成这些步骤。
若要完成本快速入门,需要:
- 具有活动订阅的 Azure 帐户。 创建帐户。
- 用于创建存储库分支的 GitHub 帐户。
1 - 创建示例存储库分支
在浏览器中,导航到包含示例代码的存储库。
选择右上角的“分支”。
在“创建新分支”屏幕上,确认“所有者”和“存储库名称”字段。 选择“创建分支”。
注意
这应使你转到新的分支。 分支 URL 将如下所示:
https://github.com/YOUR_GITHUB_ACCOUNT_NAME/java-docs-spring-hello-world
2 - 部署到 Azure
登录到 Azure 门户。
在搜索框中键入“应用服务”。 在“服务”下选择“应用程序服务” 。
在“应用程序服务”页面上,选择“创建” 。
按如下所述填写“创建 Web 应用”页。
- 资源组:创建名为 myResourceGroup 的资源组。
- 名称:为 Web 应用输入全局唯一名称。
- 发布:选择“代码”。
- 运行时堆栈:选择“Java 11”。
- Java Web 服务器堆栈:选择“Java SE (嵌入式 Web 服务器)”。
- 操作系统:选择“Windows”。
- 区域:选择靠近你的 Azure 区域。
- 应用服务计划:创建名为 myAppServicePlan 的应用服务计划。
若要更改应用服务计划层,请选择“SKU 和大小”旁边的“更改大小”。
在“规格选取器”的“生产”选项卡上,选择 P1V3。 选择页面底部的“应用”按钮。
选择“部署”部分。 在“GitHub Actions 设置”下,选择“持续部署”对应的“启用”。
在该部分中的“GitHub Actions 详细信息”下,选择以下设置:
- GitHub 帐户:登录到你的 GitHub 帐户。
- 组织:选择你的组织。
- 存储库:选择“java-docs-spring-hello-world”。
- 分支:选择“main”。
选择页面底部的“查看 + 创建”按钮。
运行验证之后,请选择页面底部的“创建”按钮。 这将创建 Azure 资源组、应用服务计划和应用服务。
创建资源后,选择“转到资源”。 在创建的应用服务页上,选择“概述”>“URL”。
Java SE 示例代码在 Azure 应用服务 Linux Web 应用中运行。
祝贺你! 现已使用 Azure 门户将第一个 Java 应用部署到应用服务。
3 - 在 GitHub 中进行更新并重新部署代码
浏览到 java-docs-spring-hello-world 的 GitHub 分支。
在存储库页面上,按
.
在浏览器中启动 Visual Studio Code。注意
URL 将从 GitHub.com 更改为 GitHub.dev。 此功能仅适用于具有文件的存储库。 它不适用于空存储库。
导航到“src/main/java/com/example/demo/DemoApplication.java”。
编辑 sayHello 方法,使其显示“Hello Azure!”而不是“Hello World!”
@RequestMapping("/") String sayHello() { return "Hello Azure!"; }
从“源代码管理”窗格中,选择“阶段更改”按钮以暂存更改。
输入提交消息,如
Hello Azure
。 然后选择“提交和推送”。完成部署后,返回到“浏览到应用”步骤期间打开的浏览器窗口,然后刷新页面。
4 - 管理新的 Azure 应用
转到 Azure 门户管理创建的 Web 应用。 搜索并选择“应用服务”。
选择 Azure 应用名称。
此时会显示 Web 应用的“概览”页。 可在此处执行基本的管理任务,例如浏览、停止、重启和删除。
Web 应用菜单提供用于配置应用的不同选项。
5 - 清理资源
在使用完该示例应用后,可从 Azure 中删除该应用的所有资源。 这样就不会产生额外费用,并会使你的 Azure 订阅保持整洁。 删除资源组还会删除资源组中的所有资源,这也是为应用删除所有 Azure 资源的最快方法。
在应用服务的“概述”页面中,选择前面创建的资源组。
在资源组页中,选择“删除资源组”。 确认资源组名称,以完成资源删除。