使用 Maven 将 Payara Micro Web 应用部署到 Azure 应用服务
在本快速入门中,你将使用适用于 Azure 应用服务 Web 应用的
如果没有 Azure 订阅,请在开始之前创建 免费帐户。
先决条件
- Azure CLI,可以在本地使用或者通过 Azure Cloud Shell 使用。
- 支持的 Java 开发工具包(JDK)。 有关在 Azure 上进行开发时可用的 JDK 的详细信息,请参阅 Azure 和 Azure Stack上的
Java 支持。 - Apache Maven版本 3。
登录到 Azure CLI
使用 Azure CLI是让 Maven 插件部署 Payara Micro 应用程序的最简单方法。
使用 Azure CLI 登录到 Azure 帐户:
az login
按照说明完成登录过程。
从 MicroProfile Starter 创建示例应用
在本部分中,你将创建一个 Payara Micro 应用程序并将其在本地测试。
打开 Web 浏览器并导航到 MicroProfile Starter 网站。
根据下表输入或选择字段值:
字段 值 groupId com.microsoft.azure.samples.payaramicro artifactId payaramicro-hello-azure MicroProfile 版本 MP 3.2 Java SE 版本 Java 11 MicroProfile 运行时 PayaraMicro 规范示例 指标,OpenAPI 选择下载,下载项目。
使用以下命令解压缩存档文件:
unzip payaraMicro-hello-azure.zip
在本地环境中运行应用程序
使用以下命令将目录更改为已完成的项目:
cd payaramicro-hello-azure/
使用以下 Maven 命令生成项目:
mvn clean package
使用以下命令运行项目:
java -jar target/payaramicro-hello-azure-microbundle.jar
通过使用 Web 浏览器本地浏览来测试 Web 应用。 例如,如果
curl
可用,则可以使用以下命令:curl http://localhost:8080/data/hello
应会看到以下消息:Hello World。
为 Azure 应用服务配置 Maven 插件
在本部分中,将配置 Payara Micro 项目 pom.xml 文件,以便 Maven 可以将应用部署到 Linux 上的 Azure 应用服务。
在代码编辑器中打开 pom.xml 文件。
在 pom.xml 文件的
<build>
部分中,在<plugins>
标记中插入以下<plugin>
条目:<build> <finalName>payaramicro-hello-azure</finalName> <plugins> <plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>1.10.0</version> </plugin> </plugins> </build>
通过运行以下 Maven 命令配置部署:
mvn azure-webapp:config
出现提示时,请选择以下选项:
输入字段 输入/选择值 定义 OS 的值(默认值:Linux): 1. linux 定义 javaVersion 的值(默认值:Java 8): 1. Java 11 定义 runtimeStack 的值(默认值:TOMCAT 8.5): TOMCAT 8.5 确认 (Y/N) y [!注意] 尽管我们不使用 Tomcat,此时仍应选择
TOMCAT 8.5
。 在详细配置过程中,将值从TOMCAT 8.5
修改为Java11
。此命令生成类似于以下示例的输出:
[INFO] Scanning for projects... [INFO] [INFO] --< com.microsoft.azure.samples.payaramicro:payaramicro-hello-azure >--- [INFO] Building payaramicro-hello-azure 1.0-SNAPSHOT [INFO] --------------------------------[ war ]--------------------------------- [INFO] [INFO] --- azure-webapp-maven-plugin:1.10.0:config (default-cli) @ payaramicro-hello-azure --- Define value for OS(Default: Linux): 1. linux [*] 2. windows 3. docker Enter index to use: Define value for javaVersion(Default: Java 8): 1. Java 11 2. Java 8 [*] Enter index to use: 1 Define value for runtimeStack(Default: TOMCAT 8.5): 1. TOMCAT 9.0 2. TOMCAT 8.5 [*] Enter index to use: Please confirm webapp properties AppName : payaramicro-hello-azure-1601009217863 ResourceGroup : payaramicro-hello-azure-1601009217863-rg Region : westeurope PricingTier : PremiumV2_P1v2 OS : Linux RuntimeStack : TOMCAT 8.5-java11 Deploy to slot : false Confirm (Y/N)? : y [INFO] Saving configuration to pom. [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 22.302 s [INFO] Finished at: 2020-09-25T13:47:11+09:00 [INFO] ------------------------------------------------------------------------
将
runtime
项从TOMCAT 8.5
修改为java11
,将deployment
项从*.war
修改为*.jar
。 然后将<appSettings>
节添加到PORT
、WEBSITES_PORT
和WEBSITES_CONTAINER_START_TIME_LIMIT
的<configuration>
节。azure-webapp-maven-plugin
的 XML 条目应类似于以下示例:<plugin> <groupId>com.microsoft.azure</groupId> <artifactId>azure-webapp-maven-plugin</artifactId> <version>1.9.1</version> <configuration> <schemaVersion>V2</schemaVersion> <resourceGroup>microprofile</resourceGroup> <appName>payaramicro-hello-azure-1591860934798</appName> <pricingTier>P1v2</pricingTier> <region>japaneast</region> <runtime> <os>linux</os> <javaVersion>java11</javaVersion> <webContainer>java11</webContainer> </runtime> <appSettings> <property> <name>PORT</name> <value>8080</value> </property> <property> <name>WEBSITES_PORT</name> <value>8080</value> </property> <property> <name>WEBSITES_CONTAINER_START_TIME_LIMIT</name> <value>600</value> </property> </appSettings> <deployment> <resources> <resource> <directory>${project.basedir}/target</directory> <includes> <include>*.jar</include> </includes> </resource> </resources> </deployment> </configuration> </plugin>
将应用部署到 Azure
在本文前面部分配置所有设置后,即可将 Web 应用部署到 Azure。 为此,请使用以下步骤:
在前面使用的命令提示符或终端窗口中,如果使用以下命令对 pom.xml 文件进行任何更改,请使用 Maven 重新生成 JAR 文件:
mvn clean package
在以下命令中使用 Maven 将 Web 应用部署到 Azure:
mvn azure-webapp:deploy
如果部署成功,则会看到以下输出:
[INFO] Successfully deployed the artifact to https://payaramicro-hello-azure-1601009217863.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 01:58 min
[INFO] Finished at: 2020-09-25T13:55:13+09:00
[INFO] ------------------------------------------------------------------------
Maven 将 Web 应用部署到 Azure。 如果 Web 应用或 Web 应用计划尚不存在,则会为你创建。 在输出中显示的 URL 上显示 Web 应用可能需要几分钟时间。 在浏览器中访问 URL。 应看到以下屏幕:
部署 Web 应用后,可以通过 Azure 门户对其进行管理。
您的 web 应用列在 MicroProfile 资源组中。
可以通过在 Web 应用的概述页中选择浏览来访问 Web 应用。 验证部署是否成功并正在运行。
确认正在运行的应用程序服务的日志流
可以从正在运行的应用程序服务查看日志的全部内容,也可以使用 tail
查看日志的结束部分。 站点代码中对 console.log
的任何调用都显示在终端中。
az webapp log tail \
--resource-group microprofile \
--name payaramicro-hello-azure-1601009217863
清理资源
不再需要 Azure 资源时,通过删除资源组来清理部署的资源。
- 在 Azure 门户中,从菜单中选择 资源组。
- 在按名称筛选字段中输入 microprofile。 在本教程中创建的资源组应具有此前缀。
- 选择在本教程中创建的资源组。
- 从菜单中选择 删除资源组。
后续步骤
若要了解有关 MicroProfile 和 Azure 的详细信息,请继续访问 Azure 文档中心的 MicroProfile。
其他资源
有关本文中讨论的各种技术的详细信息,请参阅以下文章:
- 适用于 Azure Web 应用的 Maven 插件
- 使用 Azure CLI 2.0 创建 Azure 服务主体
- Maven 设置参考