快速入門:在 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 資源。 如果您未來不需要資源,請從入口網站刪除資源群組,或在CloudShell中執行下列命令:
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) 指示之間切換。
快速入門會使用 azure-webapp-maven-plugin 外掛程式 來部署 Spring Boot 應用程式、內嵌 Tomcat 或 Quarkus 應用程式。
注意
App Service 可以裝載 Spring 應用程式。 針對需要所有 Spring 服務的 Spring 應用程式,請改為嘗試 Azure Spring Apps 。
如果 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 - 取得範例應用程式
下載並解壓縮預設的 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 App 服務 部署程式會自動使用 Azure CLI 中的 Azure 認證。 如果未在本機安裝 Azure CLI,Maven 外掛程式會向 OAuth 或裝置登入進行驗證。 如需詳細資訊,請參閱 使用 Maven 外掛程式進行驗證。
執行設定部署旁顯示的 Maven 命令。 此命令可協助您設定 App Service 作業系統、Java 版本和 Tomcat 版本。
mvn com.microsoft.azure:azure-webapp-maven-plugin:2.13.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 : <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 App 服務 中執行。
檔案的相關 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>
。 稍後會使用它們。
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/
就緒。 使用本機網頁瀏覽器開啟 URL http://<appName>.azurewebsites.net/greeting
(記下 /greeting
路徑),您應該會看到:
恭喜! 您已將第一個 Java 應用程式部署至 App Service。
5 - 清除資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您未來不需要資源,請從入口網站刪除資源群組,或在CloudShell中執行下列命令:
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 資源。 如果您未來不需要資源,請從入口網站刪除資源群組,或在CloudShell中執行下列命令:
az group delete --name <your resource group name; for example: petstoreee7-1690443003536-rg> --yes
此命令可能需要一分鐘的時間才能執行。