快速入門:在 Azure App Service 上建立 Java 應用程式
在本快速入門中,您會使用適用於 App Service Web Apps 的 Maven 外掛程式,將 Java Web 應用程式部署至 Azure App Service 中的 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 Service 的程序,會自動從 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 (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
檔案,其會設定在 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,而 Java 開發/測試建議最少使用 B2。 如需詳細資訊,請參閱 App Service 價格 | 0.1.0+ |
<runtime> |
false | 執行時間環境設定。 如需詳細資訊,請參閱設定詳細資料。 | 0.1.0+ |
<deployment> |
false | 部署設定。 如需詳細資訊,請參閱設定詳細資料。 | 0.1.0+ |
如需設定的完整清單,請參閱外掛程式參考文件。 所有 Azure Maven 外掛程式都會共用一組常見的設定。 如需這些設定,請參閱一般設定。 如需 App Service 專用的設定,請參閱 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
) 準備就緒。 使用您的本機網頁瀏覽器開啟 URL,您應該會看到
恭喜! 您已將第一個 Java 應用程式部署至 App Service。
5 - 清理資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您在未來不需要這些資源,請從入口網站刪除資源群組,或在 Cloud Shell 中執行下列命令:
az group delete --name <your resource group name; for example: helloworld-1690440759246-rg> --yes
此命令可能會花一分鐘執行。
在本快速入門中,您會使用適用於 App Service Web Apps 的 Maven 外掛程式,將 Java Web 應用程式與內嵌伺服器部署至 Azure App Service。 App Service 提供可高度擴充、自我修復的 Web 應用程式裝載服務。 使用索引標籤在 Tomcat、JBoss 或內嵌伺服器 (Java SE) 指令之間切換。
此快速入門會使用 azure-webapp-maven-plugin 外掛程式來部署 Spring Boot 應用程式、內嵌 Tomcat 或 Quarkus 應用程式。
注意
App Service 可以裝載 Spring 應用程式。 對於需要所有 Spring 服務的 Spring 應用程式,請試著改用 Azure Spring 應用程式。
如果 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 Service 的程序,會自動從 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 (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 App Service 中執行。
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,而 Java 開發/測試建議最少使用 B2。 如需詳細資訊,請參閱 App Service 價格 | 0.1.0+ |
<runtime> |
false | 執行時間環境設定。 如需詳細資訊,請參閱設定詳細資料。 | 0.1.0+ |
<deployment> |
false | 部署設定。 如需詳細資訊,請參閱設定詳細資料。 | 0.1.0+ |
如需設定的完整清單,請參閱外掛程式參考文件。 所有 Azure Maven 外掛程式都會共用一組常見的設定。 如需這些設定,請參閱一般設定。 如需 App Service 專用的設定,請參閱 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/
準備就緒。 使用您的本機網頁瀏覽器開啟 URL http://<appName>.azurewebsites.net/greeting
(請記下 /greeting
路徑),您應該會看到:
恭喜! 您已將第一個 Java 應用程式部署至 App Service。
5 - 清理資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您在未來不需要這些資源,請從入口網站刪除資源群組,或在 Cloud Shell 中執行下列命令:
az group delete --name <your resource group name; for example: quarkus-hello-azure-1690375364238-rg> --yes
執行此命令約需一分鐘。
在本快速入門中,您會使用適用於 App Service Web Apps 的 Maven 外掛程式,將 Java Web 應用程式部署至 Azure App Service 中的 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 應用程式
複製 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 App Service 的程序,會自動從 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 (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
檔案,其會設定在 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,而 Java 開發/測試建議最少使用 B2。 如需詳細資訊,請參閱 App Service 價格 | 0.1.0+ |
<runtime> |
false | 執行時間環境設定。 如需詳細資訊,請參閱設定詳細資料。 | 0.1.0+ |
<deployment> |
false | 部署設定。 如需詳細資訊,請參閱設定詳細資料。 | 0.1.0+ |
如需設定的完整清單,請參閱外掛程式參考文件。 所有 Azure Maven 外掛程式都會共用一組常見的設定。 如需這些設定,請參閱一般設定。 如需 App Service 專用的設定,請參閱 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
) 準備就緒。 使用您的本機網頁瀏覽器開啟 URL,您應該會看到
恭喜! 您已將第一個 Java 應用程式部署至 App Service。
5 - 清理資源
在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您在未來不需要這些資源,請從入口網站刪除資源群組,或在 Cloud Shell 中執行下列命令:
az group delete --name <your resource group name; for example: petstoreee7-1690443003536-rg> --yes
此命令可能會花一分鐘執行。