分享方式:


快速入門:在 Azure App Service 上建立 Java 應用程式

在本快速入門中,您會使用適用於 App Service Web Apps 的 Maven 外掛程式,將 Java Web 應用程式部署至 Azure App Service 中的 Linux Tomcat 伺服器。 App Service 提供可高度擴充、自我修復的 Web 應用程式裝載服務。 使用索引標籤在 Tomcat、JBoss 或內嵌伺服器 (Java SE) 指令之間切換。

螢幕擷取畫面顯示在 Azure App Service 中執行的 Maven Hello World Web 應用程式。

如果 Maven 不是您慣用的開發工具,請參閱供 Java 開發人員參考的類似教學課程:

如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

1 - 使用 Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Azure Cloud Shell 的「試試看」範例螢幕擷取畫面。
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 啟動 Azure Cloud Shell 的按鈕。
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的螢幕擷取畫面

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 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
  1. 針對 [建立新的執行設定],輸入 Y,然後按 Enter 鍵。

  2. 針對 [定義 OS 的值],輸入 1 (Windows) 或 2 (Linux),然後按 Enter 鍵。

  3. 針對 [定義 javaVersion 的值],輸入 3 (Java 17),然後按 Enter 鍵。

  4. 針對 [定義 webContainer 的值],輸入 1 (Tomcat 10.0),然後按 Enter 鍵。

  5. 針對 [定義 pricingTier 的值],輸入 9 (P1v2),然後按 Enter 鍵。

  6. 針對 [確認] 輸入 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 指定組態結構描述的版本。 支援的值包括:v1v2 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-1690440759246helloworld-1690440759246-rg)。 稍後會加以使用。

4 - 部署應用程式

pom.xml 檔案中準備好所有設定後,您可以使用單一命令將 Java 應用程式部署至 Azure。

mvn package azure-webapp:deploy

部署完成後,您的應用程式就會在 http://<appName>.azurewebsites.net/ (示範中為 http://helloworld-1690440759246.azurewebsites.net) 準備就緒。 使用您的本機網頁瀏覽器開啟 URL,您應該會看到

螢幕擷取畫面顯示在 Azure App Service 中執行的 Maven Hello World Web 應用程式。

恭喜! 您已將第一個 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 中。 Azure Cloud Shell 的「試試看」範例螢幕擷取畫面。
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 啟動 Azure Cloud Shell 的按鈕。
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的螢幕擷取畫面

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 Enter 鍵執行程式碼或命令。

2 - 取得範例應用程式

  1. 下載並解壓縮預設 Spring Boot Web 應用程式範本。 當您執行 Spring CLI 命令 spring boot new my-webapp 時,系統會為您複製此存放庫。

    git clone https://github.com/rd-1-2022/rest-service my-webapp
    
  2. 將您的工作目錄變更為專案資料夾:

    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
  1. 針對 [建立新的執行設定],輸入 Y,然後按 Enter 鍵。

  2. 針對 [定義 OS 的值],輸入 2 (Linux),然後按 Enter 鍵。

  3. 針對 [定義 javaVersion 的值],輸入 1 (Java 17),然後按 Enter 鍵。

  4. 針對 [定義 pricingTier 的值],輸入 9 (P1v2),然後按 Enter 鍵。

  5. 針對 [確認] 輸入 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 指定組態結構描述的版本。 支援的值包括:v1v2 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。

  1. 使用下列命令建置 JAR 檔案:

    mvn clean package
    
  2. 使用下列命令部署至 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 路徑),您應該會看到:

螢幕擷取畫面顯示在 Azure App Service 中執行的 Spring Boot Hello World Web 應用程式。

恭喜! 您已將第一個 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) 指令之間切換。

螢幕擷取畫面顯示在 Azure App Service 中執行的 Maven Hello World Web 應用程式。

如果 Maven 不是您慣用的開發工具,請參閱供 Java 開發人員參考的類似教學課程:

如果您沒有 Azure 訂用帳戶,請在開始之前先建立 Azure 免費帳戶

1 - 使用 Azure Cloud Shell

Azure Cloud Shell 是裝載於 Azure 中的互動式殼層環境,可在瀏覽器中使用。 您可以使用 Bash 或 PowerShell 搭配 Cloud Shell,與 Azure 服務共同使用。 您可以使用 Cloud Shell 預先安裝的命令,執行本文提到的程式碼,而不必在本機環境上安裝任何工具。

要啟動 Azure Cloud Shell:

選項 範例/連結
選取程式碼或命令區塊右上角的 [試試看]。 選取 [試試看] 並不會自動將程式碼或命令複製到 Cloud Shell 中。 Azure Cloud Shell 的「試試看」範例螢幕擷取畫面。
請前往 https://shell.azure.com,或選取 [啟動 Cloud Shell] 按鈕,在瀏覽器中開啟 Cloud Shell。 啟動 Azure Cloud Shell 的按鈕。
選取 Azure 入口網站右上方功能表列上的 [Cloud Shell] 按鈕。 顯示 Azure 入口網站中 Cloud Shell 按鈕的螢幕擷取畫面

若要使用 Azure Cloud Shell:

  1. 啟動 Cloud Shell。

  2. 選取程式碼區塊 (或命令區塊) 上的 [複製] 按鈕以複製程式碼或命令。

  3. 透過在 Windows 和 Linux 上選取 Ctrl+Shift+V;或在 macOS 上選取 Cmd+Shift+V,將程式碼或命令貼到 Cloud Shell 工作階段中。

  4. 選取 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
  1. 針對 [建立新的執行設定],輸入 Y,然後按 Enter 鍵。

  2. 針對 [定義 OS 的值],輸入 2 (Linux),然後按 Enter 鍵。

  3. 針對 [定義 javaVersion 的值],輸入 2 (Java 11),然後按 Enter 鍵。

  4. 針對 [webContainer] 選項,輸入 1 (Jbosseap 7),然後按 Enter 鍵。

  5. 針對 [定義 pricingTier 的值],輸入 1 (P1v3),然後按 Enter 鍵。

  6. 針對 [確認] 輸入 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 指定組態結構描述的版本。 支援的值包括:v1v2 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-1690443003536petstoreee7-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,您應該會看到

螢幕擷取畫面顯示在 Azure App Service 中執行的 Maven Hello World Web 應用程式。

恭喜! 您已將第一個 Java 應用程式部署至 App Service。

5 - 清理資源

在上述步驟中,您已建立資源群組中的 Azure 資源。 如果您在未來不需要這些資源,請從入口網站刪除資源群組,或在 Cloud Shell 中執行下列命令:

az group delete --name <your resource group name; for example: petstoreee7-1690443003536-rg> --yes

此命令可能會花一分鐘執行。

下一步