共用方式為


部署 Helidon Web 應用程式以使用 Maven Azure App 服務

在本快速入門中,您將使用適用於 Azure App 服務 Web Apps 的 Maven 外掛程式,將 Helidon 應用程式部署至 Linux 上的 Azure App 服務。 當您想要將應用程式的相依性、運行時間和設定合併成單一可部署成品時,想要選擇透過 Tomcat 和 WAR 檔案 的 Java SE 部署。

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

必要條件

登入 Azure CLI

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

使用 Azure CLI 登入您的 Azure 帳戶:

az login

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

從 MicroProfile Starter 建立範例應用程式

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

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

    顯示已選取 Helidon 運行時間之 MicroProfile Starter 的螢幕快照。

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

    欄位
    groupId 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 啟動 Web 應用程式;例如:

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

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

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

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

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

  2. <build>在pom.xml檔案的 區段中,將下列<plugin>專案插入標記內<plugins>

    <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
    Confirm (Y/N) (確認 (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>段新增至 <configuration>WEBSITES_PORTWEBSITES_CONTAINER_START_TIME_LIMITPORT區段。 <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 應用程式方案尚未存在,將會為您建立它。 可能需要幾分鐘的時間,Web 應用程式才會顯示在輸出中顯示的URL。 流覽至網頁瀏覽器中的 URL。 您應該會看到顯示的訊息: Hello World

部署 Web 之後,您可以透過 Azure 入口網站 加以管理。

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

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

使用與 before(/data/hello) 相同的 cURL 命令,從入口網站使用 Web 應用程式 URL,而不是 localhost,確認部署成功。 您應該會看到下列訊息顯示: Hello World

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

您可以從執行中的 App Service 看到記錄檔(或「tail」。 月臺碼中的任何呼叫 console.log 都會顯示在終端機中。

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

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

清除資源

不再需要 Azure 資源時,可藉由刪除資源群組來清除您所部署的資源。

  • 在 Azure 入口網站中,選取左側功能表中的 [資源群組]。
  • 在 [依名稱篩選] 字段中輸入 microprofile,本教學課程中建立的資源群組應具有此前置詞。
  • 選取在本教學課程中建立的資源群組。
  • 從頂端功能表中選取 [刪除資源群組]。

下一步

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

其他資源

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