快速入門:在 Azure App 服務 上建立 JAVA 應用程式
在本快速入門中,您將使用 適用于 Azure App 服務 Web Apps 的 Maven 外掛程式,將 JAVA Web 應用程式部署至 Azure App 服務 中的 Linux Tomcat 伺服器。 App Service 提供可高度擴充、自我修補的 Web 應用程式裝載服務。 使用索引標籤在 Tomcat、JBoss 或內嵌伺服器 (JAVA SE) 指示之間切換。
如果 Maven 不是您慣用的開發工具,請參閱適用于 JAVA 開發人員的類似教學課程:
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
1 - 使用 Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 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 App 服務部署程式會自動使用 Azure CLI 中的 Azure 認證。 如果未在本機安裝 Azure CLI,Maven 外掛程式會向 OAuth 或裝置登入進行驗證。 如需詳細資訊,請參閱 使用 Maven 外掛程式進行 驗證。
執行設定部署旁顯示的 Maven 命令。 此命令可協助您設定 App Service 作業系統、JAVA 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
針對 [ 建立新的執行組態 ],輸入 Y ,然後 輸入 Enter 。
針對 [ 定義 OS 的值],輸入 1 for Windows 或 2 for Linux,然後 輸入 Enter 。
針對 [ 定義 javaVersion 的值],輸入 3 for JAVA 17,然後 輸入 Enter 。
針對 [ 定義 webContainer 的值],輸入 1 做為 Tomcat 10.0,然後 輸入 Enter 。
針對 [定義 pricingTier 的值],輸入 P1v2 的 9 ,然後 輸入 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
檔案,其會設定在 Azure App Service 中執行 Web 應用程式。
檔案的相關 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
修改 App Service 的組態。 下表列出一些常見的組態:
屬性 | 必要 | 描述 | 版本 |
---|---|---|---|
<schemaVersion> |
false | 指定組態架構的版本。 支援的值為:、 v1 v2 。 |
1.5.2 |
<subscriptionId> |
false | 指定訂用帳戶識別碼。 | 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 開發/測試的建議最小值。 如需詳細資訊,請參閱 App Service 定價 | 0.1.0+ |
<runtime> |
false | 執行時間環境組態。 如需詳細資訊,請參閱 設定詳細資料 。 | 0.1.0+ |
<deployment> |
false | 部署組態。 如需詳細資訊,請參閱 設定詳細資料 。 | 0.1.0+ |
如需設定的完整清單,請參閱外掛程式參考文件。 所有 Azure Maven 外掛程式都會共用一組常見的設定。 如需這些設定,請參閱一般設定。 如需 App Service 專用的設定,請參閱 Azure Web 應用程式:設定詳細資料。
請小心 和 <resourceGroup>
的值 <appName>
( helloworld-1690440759246
並 helloworld-1690440759246-rg
據此在示範中)。 稍後會使用它們。
4 - 部署應用程式
在 pom.xml 檔案中 備妥所有組態後,您可以使用單一命令將 JAVA 應用程式部署至 Azure。
mvn package azure-webapp:deploy
完成部署之後,您的應用程式就已準備就緒 http://<appName>.azurewebsites.net/
( http://helloworld-1690440759246.azurewebsites.net
在示範中)。 使用本機網頁瀏覽器開啟 URL,您應該會看到
恭喜! 您已將第一個 JAVA 應用程式部署至 App Service。
5 - 清除資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您未來不需要資源,請從入口網站刪除資源群組,或在 Cloud Shell 中執行下列命令:
az group delete --name <your resource group name; for example: helloworld-1690440759246-rg> --yes
此命令可能需要一分鐘的時間才能執行。
在本快速入門中,您將使用 適用于 Azure App 服務 Web Apps 的 Maven 外掛程式,將具有內嵌伺服器的 JAVA Web 應用程式部署至 Azure App 服務 。 App Service 提供可高度擴充、自我修補的 Web 應用程式裝載服務。 使用索引標籤在 Tomcat、JBoss 或內嵌伺服器 (JAVA SE) 指示之間切換。
快速入門會使用 Quarkus 範例,其中包含配套的網頁伺服器。 您可以在單一 JAR 檔案中將自己的應用程式和伺服器配套部署到 App Service,而不是使用 Tomcat 或 JBoss 裝載選項。 如有需要,您也可以在 JAR 檔案中內嵌 Tomcat 伺服器,並在 App Service 中執行該伺服器。
注意
針對需要所有 Spring 服務的 Spring 應用程式,請改為嘗試 Azure Spring Apps 。 不過,您可以將 Spring Boot 應用程式部署至 App Service。
如果 Maven 不是您慣用的開發工具,請參閱適用于 JAVA 開發人員的類似教學課程:
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
1 - 使用 Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 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 命令,以建立名為 quarkus-hello-azure
的新應用程式:
mvn io.quarkus.platform:quarkus-maven-plugin:3.2.2.Final:create \
-DprojectGroupId=org.acme \
-DprojectArtifactId=quarkus-hello-azure \
-Dextensions='resteasy-reactive'
然後將工作目錄變更為專案資料夾:
cd quarkus-hello-azure
3 - 設定 Maven 外掛程式
Azure App 服務部署程式會自動使用 Azure CLI 中的 Azure 認證。 如果未在本機安裝 Azure CLI,Maven 外掛程式會向 OAuth 或裝置登入進行驗證。 如需詳細資訊,請參閱 使用 Maven 外掛程式進行 驗證。
執行設定部署旁顯示的 Maven 命令。 此命令可協助您設定 App Service 作業系統、JAVA 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
針對 [ 建立新的執行組態 ],輸入 Y ,然後 輸入 Enter 。
針對 [定義 OS 的值],輸入 2 for Linux,然後 輸入 Enter 。
針對 [ 定義 javaVersion 的值],輸入 1 for JAVA 17,然後 輸入 Enter 。
針對 [定義 pricingTier 的值],輸入 P1v2 的 9 ,然後 輸入 Enter 。
針對 [ 確認 ],輸入 Y ,然後 輸入 Enter 。
Please confirm webapp properties AppName : quarkus-hello-azure-1690375364238 ResourceGroup : quarkus-hello-azure-1690375364238-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
檔案,其會設定在 Azure App Service 中執行 Web 應用程式。
檔案的相關 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
修改 App Service 的組態。 下表列出一些常見的組態:
屬性 | 必要 | 描述 | 版本 |
---|---|---|---|
<schemaVersion> |
false | 指定組態架構的版本。 支援的值為:、 v1 v2 。 |
1.5.2 |
<subscriptionId> |
false | 指定訂用帳戶識別碼。 | 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 開發/測試的建議最小值。 如需詳細資訊,請參閱 App Service 定價 | 0.1.0+ |
<runtime> |
false | 執行時間環境組態。 如需詳細資訊,請參閱 設定詳細資料 。 | 0.1.0+ |
<deployment> |
false | 部署組態。 如需詳細資訊,請參閱 設定詳細資料 。 | 0.1.0+ |
如需設定的完整清單,請參閱外掛程式參考文件。 所有 Azure Maven 外掛程式都會共用一組常見的設定。 如需這些設定,請參閱一般設定。 如需 App Service 專用的設定,請參閱 Azure Web 應用程式:設定詳細資料。
請小心 和 <resourceGroup>
的值 <appName>
( quarkus-hello-azure-1690375364238
並 quarkus-hello-azure-1690375364238-rg
據此在示範中)。 稍後會使用它們。
4 - 部署應用程式
在 pom.xml 檔案中 備妥所有組態後,您可以使用單一命令將 JAVA 應用程式部署至 Azure。
使用下列命令重建 JAR 檔案:
mvn clean package -Dquarkus.package.type=uber-jar -D%prod.quarkus.http.port=80
此命令會新增兩個 Quarkus 屬性:
quarkus.package.type=uber-jar
告知 Maven 產生 Uber-Jar ,其中包含 JAR 檔案中的所有相依性。%prod.quarkus.http.port=80
會告訴 Quarkus 在執行時間使用 prod 環境的埠 80,這是 Linux JAVA 容器使用的預設埠。 如果您想要,您可以使用應用程式設定來變更 JAVA 容器的WEBSITES_PORT
埠號碼。
您可以使用其他方法來設定這些屬性,但為了簡單起見,這些屬性會新增至
mvn package
命令。使用下列命令部署至 Azure:
mvn azure-webapp:deploy
如果部署成功,您會看到下列輸出:
[INFO] Successfully deployed the artifact to https://quarkus-hello-azure-1690375364238.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/
( http://quarkus-hello-azure-1690375364238.azurewebsites.net
在示範中)。 使用本機網頁瀏覽器開啟 URL,您應該會看到
恭喜! 您已將第一個 JAVA 應用程式部署至 App Service。
5 - 清除資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您未來不需要資源,請從入口網站刪除資源群組,或在 Cloud Shell 中執行下列命令:
az group delete --name <your resource group name; for example: quarkus-hello-azure-1690375364238-rg> --yes
此命令可能需要一分鐘的時間才能執行。
在本快速入門中,您將使用 適用于 Azure App 服務 Web Apps 的 Maven 外掛程式,將 JAVA Web 應用程式部署至 Azure App 服務 中的 Linux JBoss EAP 伺服器。 App Service 提供可高度擴充、自我修補的 Web 應用程式裝載服務。 使用索引標籤在 Tomcat、JBoss 或內嵌伺服器 (JAVA SE) 指示之間切換。
如果 Maven 不是您慣用的開發工具,請參閱適用于 JAVA 開發人員的類似教學課程:
如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶。
1 - 使用 Azure Cloud Shell
Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 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 應用程式
複製寵物市集示範應用程式。
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 App 服務部署程式會自動使用 Azure CLI 中的 Azure 認證。 如果未在本機安裝 Azure CLI,Maven 外掛程式會向 OAuth 或裝置登入進行驗證。 如需詳細資訊,請參閱 使用 Maven 外掛程式進行 驗證。
執行設定部署旁顯示的 Maven 命令。 此命令可協助您設定 App Service 作業系統、JAVA 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.12.0:config
針對 [ 建立新的執行組態 ],輸入 Y ,然後 輸入 Enter 。
針對 [定義 OS 的值],輸入 2 for Linux,然後 輸入 Enter 。
針對 [ 定義 javaVersion 的值],輸入 2 for JAVA 11,然後 輸入 Enter 。
針對 webContainer 選項,輸入 1 代表 Jbosseap 7,然後 輸入 Enter 。
針對 [定義 pricingTier 的值],輸入 P1v3 的 1 ,然後 輸入 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
檔案,其會設定在 Azure App Service 中執行 Web 應用程式。
檔案的相關 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
修改 App Service 的組態。 下表列出一些常見的組態:
屬性 | 必要 | 描述 | 版本 |
---|---|---|---|
<schemaVersion> |
false | 指定組態架構的版本。 支援的值為:、 v1 v2 。 |
1.5.2 |
<subscriptionId> |
false | 指定訂用帳戶識別碼。 | 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 開發/測試的建議最小值。 如需詳細資訊,請參閱 App Service 定價 | 0.1.0+ |
<runtime> |
false | 執行時間環境組態。 如需詳細資訊,請參閱 設定詳細資料 。 | 0.1.0+ |
<deployment> |
false | 部署組態。 如需詳細資訊,請參閱 設定詳細資料 。 | 0.1.0+ |
如需設定的完整清單,請參閱外掛程式參考文件。 所有 Azure Maven 外掛程式都會共用一組常見的設定。 如需這些設定,請參閱一般設定。 如需 App Service 專用的設定,請參閱 Azure Web 應用程式:設定詳細資料。
請小心 和 <resourceGroup>
的值 <appName>
( 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
在示範中)。 使用本機網頁瀏覽器開啟 URL,您應該會看到
恭喜! 您已將第一個 JAVA 應用程式部署至 App Service。
5 - 清除資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您未來不需要資源,請從入口網站刪除資源群組,或在 Cloud Shell 中執行下列命令:
az group delete --name <your resource group name; for example: petstoreee7-1690443003536-rg> --yes
此命令可能需要一分鐘的時間才能執行。