共用方式為


使用 Maven 將 Helidon Web 應用程式部署至 Azure App Service

在本快速入門中,您會使用適用於 Azure App Service Web Apps 的 Maven 外掛程式,將 Helidon 應用程式部署至 Linux 上的 Azure App Service 。 當您希望將應用程式的相依性、執行環境和組態合併成單一可部署成品時,請選擇 Java SE 部署,而不是 Tomcat 和 WAR 檔案

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

先決條件

  • Azure CLI,無論是在本機運行或是透過 Azure Cloud Shell
  • 支援的 Java 開發工具套件 (JDK)。 如需在 Azure 上開發時可用的 JDK 詳細資訊,請參閱 Azure 及 Azure Stack 上的 Java 支援
  • Apache Maven版本 3。

登入 Azure CLI

最簡單的方式來取得 Maven 外掛程式以部署 Helidon 應用程式,就是使用 Azure CLI

在 Azure CLI 中使用下列命令登入您的 Azure 帳戶:

az login

請遵循指示來完成登入程式。

從 MicroProfile Starter 建立範例應用程式

在本節中,您會建立 Helidon 應用程式並在本機進行測試。

  1. 開啟網頁瀏覽器並流覽至 MicroProfile Starter 網站。

    顯示 MicroProfile Starter 並選擇了 Helidon 執行環境的螢幕快照。

  2. 輸入或選取如下所示的欄位。

    價值
    群組ID com.microsoft.azure.samples.helidon
    artifactId helidon-hello-azure
    MicroProfile 版本 MP 3.2
    Java SE 版本 Java 11
    MicroProfile 執行環境 赫利登
    規格的範例 計量、OpenAPI
  3. 選取 下載 以下載專案。

  4. 將封存盤案解壓縮。 您可以使用命令列,如下列範例所示:

    unzip helidon-hello-azure.zip
    
  5. 或者,您可以使用下列命令來建立專案:

    mvn -U archetype:generate -DinteractiveMode=false \
        -DarchetypeGroupId=io.helidon.archetypes \
        -DarchetypeArtifactId=helidon-quickstart-se \
        -DarchetypeVersion=2.0.0 \
        -DgroupId=com.microsoft.azure.samples.helidon \
        -DartifactId=helidon-hello-azure \
        -Dpackage=com.microsoft.azure.samples.helidon
    
  6. 使用下列命令,將目錄變更為已完成的專案:

    cd helidon-hello-azure/
    
  7. 使用下列命令,使用 Maven 建置 JAR 檔案:

    mvn clean package
    
  8. 建立 Web 應用程式之後,請使用下列 Maven 命令加以啟動:

    java -jar target/helidon-hello-azure.jar
    
  9. 使用網頁瀏覽器在本機瀏覽 Web 應用程式以進行測試。 例如,如果您有 curl 可用,您可以使用下列命令:

    curl http://localhost:8080/greet
    
  10. 您應該會看到下列訊息顯示:Hello World

設定適用於 Azure App Service 的 Maven 外掛程式

在本節中,您會設定 Helidon 專案 pom.xml 檔案,讓 Maven 可以將應用程式部署至 Linux 上的 Azure App Service。

  1. 在程式代碼編輯器中開啟 pom.xml 檔案。

  2. pom.xml 檔案的 <build> 區段中,於 <plugins> 標籤內插入下列 <plugin> 條目:

    <build>
      <finalName>helidon-hello-azure</finalName>
      <plugins>
        <plugin>
          <groupId>com.microsoft.azure</groupId>
          <artifactId>azure-webapp-maven-plugin</artifactId>
          <version>1.10.0</version>
        </plugin>
      </plugins>
    </build>
    
  3. 使用下列 Maven 命令設定部署:

    mvn azure-webapp:config
    

    出現提示時,請選取下列選項:

    輸入欄位 輸入/選取值
    定義 OS 的值(預設值:Linux): 1. linux
    定義 javaVersion 的值(預設值:Java 8): 1. Java 11
    確認 (Y/N) y

    這個指令會產生類似下列範例的輸出:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] ------< com.microsoft.azure.samples.helidon:helidon-hello-azure >-------
    [INFO] Building myproject 1.0-SNAPSHOT
    [INFO] --------------------------------[ jar ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:1.10.0:config (default-cli) @ helidon-hello-azure ---
    Define value for OS(Default: Linux):
    1. linux [*]
    2. windows
    3. docker
    Enter index to use: 1
    Define value for javaVersion(Default: Java 8):
    1. Java 11
    2. Java 8 [*]
    Enter index to use: 1
    Please confirm webapp properties
    AppName : helidon-hello-azure-1600998900939
    ResourceGroup : helidon-hello-azure-1600998900939-rg
    Region : westeurope
    PricingTier : PremiumV2_P1v2
    OS : Linux
    RuntimeStack : JAVA 11-java11
    Deploy to slot : false
    Confirm (Y/N)? : y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  02:44 min
    [INFO] Finished at: 2020-09-25T10:57:35+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. 將 [<appSettings>] 區段新增至 PORTWEBSITES_PORTWEBSITES_CONTAINER_START_TIME_LIMIT<configuration> 區段。 將 <include>/libs/*.jar</include> 新增至部署中的資源。

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>1.10.0</version>
      <configuration>
        <schemaVersion>V2</schemaVersion>
        <resourceGroup>microprofile</resourceGroup>
        <appName>helidon-hello-azure-1591663020899</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>
                <include>/libs/*.jar</include>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    

將應用程式部署至 Azure

在本文前幾節中設定所有設定之後,您就可以將 Web 應用程式部署至 Azure。 若要這樣做,請使用下列步驟:

  1. 從您稍早使用的命令提示字元或終端機視窗中,如果您使用下列命令對 pom.xml 檔案進行任何變更,請使用 Maven 重建 JAR 檔案:

    mvn clean package
    
  2. 使用下列命令,使用 Maven 將 Web 應用程式部署至 Azure:

    mvn azure-webapp:deploy
    

Maven 會將 Web 應用程式部署至 Azure。 如果 Web 應用程式或 Web 應用程式方案尚未存在,則會為您建立它。 可能需要幾分鐘,網頁應用才會出現在輸出顯示的 URL 中。 請在網頁瀏覽器中打開該 URL。 您應該會看到顯示的訊息:Hello World

部署 Web 應用程式時,您可以透過 azure 入口網站 來管理它。

您的 Web 應用程式會列在 App Services中。

您可以在 Web 應用程式的 [概觀] 頁面上選取 [瀏覽 ],以存取您的 Web 應用程式。

使用 azure 入口網站中的 Web 應用程式 URL,而不是使用 /greetlocalhost,確認部署是否成功,如先前一樣使用 cURL 命令。 您應該會看到下列訊息顯示:Hello World

從執行中的 App Service 確認記錄數據流

您可以使用下列命令,從執行中的 App Service 檢視或 。 任何對於站點代碼 console.log 的呼叫都會顯示在終端機中。

az webapp log tail \
    --resource-group microprofile \
    --name helidon-hello-azure-1600998900939

顯示記錄輸出的終端機視窗螢幕快照。

清除資源

當不再需要 Azure 資源時,請刪除資源群組來清除您部署的資源。

  1. 從 Azure 入口網站中,從功能表中選取 [資源群組]。
  2. 名稱篩選 欄位中輸入 microprofile。 在本教學課程中建立的資源群組應該具有這個前綴。
  3. 選取在本教學課程中建立的資源群組。
  4. 在功能表中選取 ,然後選擇刪除資源群組

後續步驟

若要深入瞭解 MicroProfile 和 Azure,請繼續前往 Azure 上的 MicroProfile 檔中心。

Azure 上的 MicroProfile

其他資源

如需本文所討論各種技術的詳細資訊,請參閱下列文章: