你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:在 Azure 应用服务中创建 Java 应用
在本快速入门中,你将使用适用于 Azure 应用服务 Web 应用的 Maven 插件将 Java Web 应用程序部署到 Azure 应用服务中的 Linux Tomcat 服务器。 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 使用选项卡在 Tomcat、JBoss 或嵌入式服务器 (Java SE) 指令之间切换。
如果 Maven 不是首选开发工具,请查看面向 Java 开发人员的类似教程:
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
1 - 使用 Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项 | 示例/链接 |
---|---|
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
2 - 创建 Java 应用
在 Cloud Shell 提示符下,执行以下 Maven 命令来创建一个名为 helloworld
的新应用:
mvn archetype:generate "-DgroupId=example.demo" "-DartifactId=helloworld" "-DarchetypeArtifactId=maven-archetype-webapp" "-DarchetypeVersion=1.4" "-Dversion=1.0-SNAPSHOT"
然后,将工作目录更改为项目文件夹:
cd helloworld
3 - 配置 Maven 插件
部署到 Azure 应用服务的过程会自动使用 Azure CLI 中的 Azure 凭据。 如果未在本地安装 Azure CLI,则 Maven 插件会使用 OAuth 或设备登录来进行身份验证。 有关详细信息,请参阅 Maven 插件的身份验证。
运行接下来显示的 Maven 命令来配置部署。 此命令将帮助你设置应用服务操作系统、Java 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
对于“创建新的运行配置”,请键入 Y,然后按 Enter。
对于“定义 OS 的值”,请键入 1(对于 Windows)或 2(对于 Linux),然后按 Enter。
对于“定义 javaVersion 的值”,请键入 3(对于 Java 17),然后按 Enter。
对于“定义 WebContainer 的值”,请键入 1(对于 Tomcat 10.0),然后按 Enter。
对于“定义 pricingTier 的值”,请键入 9(对于 P1v2),然后按 Enter。
对于“确认”,请键入 Y,然后按 Enter。
Please confirm webapp properties AppName : helloworld-1690440759246 ResourceGroup : helloworld-1690440759246-rg Region : centralus PricingTier : P1v2 OS : Linux Java Version: Java 17 Web server stack: Tomcat 10.0 Deploy to slot : false Confirm (Y/N) [Y]: [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 13.069 s [INFO] Finished at: 2023-07-27T06:52:48Z [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
中修改应用服务的配置。 下表列出了一些常见配置:
properties | 必选 | 说明 | 版本 |
---|---|---|---|
<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 应用的区域;默认值为 centralus。 支持的区域部分中列出了所有有效区域。 | 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-1690440759246
和 helloworld-1690440759246-rg
)。 稍后会使用它们。
4 - 部署应用
在 pom.xml 文件中准备好所有配置后,只需要一个命令即可将 Java 应用部署到 Azure。
mvn package azure-webapp:deploy
在部署完成后,应用程序就会在 http://<appName>.azurewebsites.net/
(在演示中为 http://helloworld-1690440759246.azurewebsites.net
)处准备就绪。 在本地 Web 浏览器中打开 url,你应该会看到
恭喜! 现已将第一个 Java 应用部署到应用服务。
5 - 清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不需要这些资源,请从门户删除资源组,或在 Cloud Shell 中运行以下命令来这样做:
az group delete --name <your resource group name; for example: helloworld-1690440759246-rg> --yes
此命令可能需要花费一点时间运行。
在本快速入门中,你将使用适用于 Azure 应用服务 Web 应用的 Maven 插件将具有嵌入式服务器的 Java Web 应用程序部署到 Azure 应用服务。 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 使用选项卡在 Tomcat、JBoss 或嵌入式服务器 (Java SE) 指令之间切换。
本快速入门使用 azure-webapp-maven-plugin 插件部署 Spring Boot 应用、嵌入式 Tomcat 或 Quarkus 应用。
注意
应用服务可以托管 Spring 应用。 对于需要所有 Spring 服务的 Spring 应用,请改用 Azure Spring Apps。
如果 Maven 不是首选开发工具,请查看面向 Java 开发人员的类似教程:
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
1 - 使用 Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项 | 示例/链接 |
---|---|
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
2 - 获取示例应用
下载并提取默认 Spring Boot Web 应用程序模板。 运行 Spring CLI 命令
spring boot new my-webapp
时,会克隆此存储库。git clone https://github.com/rd-1-2022/rest-service my-webapp
将工作目录更改为项目文件夹:
cd my-webapp
3 - 配置 Maven 插件
部署到 Azure 应用服务的过程会自动使用 Azure CLI 中的 Azure 凭据。 如果未在本地安装 Azure CLI,则 Maven 插件会使用 OAuth 或设备登录来进行身份验证。 有关详细信息,请参阅 Maven 插件的身份验证。
运行接下来显示的 Maven 命令来配置部署。 此命令将帮助你设置应用服务操作系统、Java 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.0:config
对于“创建新的运行配置”,请键入 Y,然后按 Enter。
对于“定义 OS 的值”,请键入 2(对于 Linux),然后按 Enter。
对于“定义 javaVersion 的值”,请键入 1(对于 Java 17),然后按 Enter。
对于“定义 pricingTier 的值”,请键入 9(对于 P1v2),然后按 Enter。
对于“确认”,请键入 Y,然后按 Enter。
Please confirm webapp properties AppName : <generated-app-name> ResourceGroup : <generated-app-name>-rg Region : centralus 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: 8.139 s [INFO] Finished at: 2023-07-26T12:42:48Z [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
中修改应用服务的配置。 下表列出了一些常见配置:
properties | 必选 | 说明 | 版本 |
---|---|---|---|
<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 应用的区域;默认值为 centralus。 支持的区域部分中列出了所有有效区域。 | 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>
的值。 稍后会使用它们。
4 - 部署应用
在 pom.xml 文件中准备好所有配置后,只需要一个命令即可将 Java 应用部署到 Azure。
使用以下命令生成 JAR 文件:
mvn clean package
使用以下命令部署到 Azure:
mvn azure-webapp:deploy
如果部署成功,则你会看到以下输出:
[INFO] Successfully deployed the artifact to https://<app-name>.azurewebsites.net [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 02:20 min [INFO] Finished at: 2023-07-26T12:47:50Z [INFO] ------------------------------------------------------------------------
部署完成后,应用程序即可在 http://<appName>.azurewebsites.net/
准备就绪。 使用本地 Web 浏览器打开 URL http://<appName>.azurewebsites.net/greeting
(记下 /greeting
路径),你应该会看到:
祝贺你! 现已将第一个 Java 应用部署到应用服务。
5 - 清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不需要这些资源,请从门户删除资源组,或在 Cloud Shell 中运行以下命令来这样做:
az group delete --name <your resource group name; for example: quarkus-hello-azure-1690375364238-rg> --yes
运行此命令可能需要一分钟时间。
在本快速入门中,你将使用适用于 Azure 应用服务 Web 应用的 Maven 插件将 Java Web 应用程序部署到 Azure 应用服务中的 Linux JBoss EAP 服务器。 应用服务提供高度可缩放、自修复的 Web 应用托管服务。 使用选项卡在 Tomcat、JBoss 或嵌入式服务器 (Java SE) 指令之间切换。
如果 Maven 不是首选开发工具,请查看面向 Java 开发人员的类似教程:
如果没有 Azure 订阅,请在开始之前创建一个 Azure 免费帐户。
1 - 使用 Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项 | 示例/链接 |
---|---|
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
2 - 创建 Java 应用
克隆 Pet Store 演示应用程序。
git clone https://github.com/Azure-Samples/app-service-java-quickstart
将目录更改为已完成的宠物店项目并生成它。
提示
petstore-ee7
示例需要 Java 11 或更高版本。 booty-duke-app-service
示例项目需要 Java 17。 如果安装的 Java 版本低于 17,请从 petstore-ee7
目录中运行生成,而不是在顶级运行。
cd app-service-java-quickstart
git checkout 20230308
cd petstore-ee7
mvn clean install
如果看到有关处于拆离的 HEAD 状态的消息,可以放心忽略此消息。 由于你不会在本快速入门中进行任何 Git 提交,因此分离的 HEAD 状态是合适的。
3 - 配置 Maven 插件
部署到 Azure 应用服务的过程会自动使用 Azure CLI 中的 Azure 凭据。 如果未在本地安装 Azure CLI,则 Maven 插件会使用 OAuth 或设备登录来进行身份验证。 有关详细信息,请参阅 Maven 插件的身份验证。
运行接下来显示的 Maven 命令来配置部署。 此命令将帮助你设置应用服务操作系统、Java 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
对于“创建新的运行配置”,请键入 Y,然后按 Enter。
对于“定义 OS 的值”,请键入 2(对于 Linux),然后按 Enter。
对于“定义 javaVersion 的值”,请键入 2(对于 Java 11),然后按 Enter。
对于“webContainer”选项,请键入 1(对于 Jbosseap 7),然后按 Enter。
对于“定义 pricingTier 的值”,请键入 1(对于 P1v3),然后按 Enter。
对于“确认”,请键入 Y,然后按 Enter。
Please confirm webapp properties AppName : petstoreee7-1690443003536 ResourceGroup : petstoreee7-1690443003536-rg Region : centralus PricingTier : P1v3 OS : Linux Java Version: Java 11 Web server stack: Jbosseap 7 Deploy to slot : false Confirm (Y/N) [Y]: [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 19.914 s [INFO] Finished at: 2023-07-27T07:30:20Z [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
中修改应用服务的配置。 下表列出了一些常见配置:
properties | 必选 | 说明 | 版本 |
---|---|---|---|
<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 应用的区域;默认值为 centralus。 支持的区域部分中列出了所有有效区域。 | 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>
的值(在演示中相应地为 petstoreee7-1690443003536
和 petstoreee7-1690443003536-rg
)。 稍后会使用它们。
4 - 部署应用
在 pom.xml 文件中准备好所有配置后,只需要一个命令即可将 Java 应用部署到 Azure。
# Disable testing, as it requires Wildfly to be installed locally.
mvn package azure-webapp:deploy -DskipTests
在部署完成后,应用程序就会在 http://<appName>.azurewebsites.net/
(在演示中为 http://petstoreee7-1690443003536.azurewebsites.net
)处准备就绪。 在本地 Web 浏览器中打开 url,你应该会看到
恭喜! 现已将第一个 Java 应用部署到应用服务。
5 - 清理资源
在前面的步骤中,你在资源组中创建了 Azure 资源。 如果将来不需要这些资源,请从门户删除资源组,或在 Cloud Shell 中运行以下命令来这样做:
az group delete --name <your resource group name; for example: petstoreee7-1690443003536-rg> --yes
此命令可能需要花费一点时间运行。