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

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

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

必要條件

登入 Azure CLI

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

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

az login

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

從 MicroProfile Starter 建立範例應用程式

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

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

    顯示已選取 Payara Micro Runtime 之 MicroProfile Starter 的螢幕快照。

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

    欄位
    groupId com.microsoft.azure.samples.payaramicro
    artifactId payaramicro-hello-azure
    MicroProfile 版本 MP 3.2
    Java SE 版本 Java 11
    MicroProfile 運行時間 PayaraMicro
    規格的範例 計量、OpenAPI
  3. 選取 [ 下載 ] 以下載專案。

  4. 解壓縮封存盤案;例如:

    unzip payaraMicro-hello-azure.zip
    

在本機環境中執行應用程式

  1. 將目錄變更為已完成的專案;例如:

    cd payaramicro-hello-azure/
    
  2. 使用 Maven 建置專案;例如:

    mvn clean package
    
  3. 執行專案;例如:

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

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

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

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

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

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

    <build>
      <finalName>payaramicro-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
    定義 runtimeStack 的值(預設值:TOMCAT 8.5): TOMCAT 8.5
    Confirm (Y/N) (確認 (Y/N)) y

    [!注意] 即使我們不使用 Tomcat,目前仍選取 TOMCAT 8.5 。 在詳細的設定期間,您會將 值從 TOMCAT 8.5 修改為 Java11

    此命令所產生的輸出與下列範例類似:

    [INFO] Scanning for projects...
    [INFO]
    [INFO] --< com.microsoft.azure.samples.payaramicro:payaramicro-hello-azure >---
    [INFO] Building payaramicro-hello-azure 1.0-SNAPSHOT
    [INFO] --------------------------------[ war ]---------------------------------
    [INFO]
    [INFO] --- azure-webapp-maven-plugin:1.10.0:config (default-cli) @ payaramicro-hello-azure ---
    Define value for OS(Default: Linux):
    1. linux [*]
    2. windows
    3. docker
    Enter index to use:
    Define value for javaVersion(Default: Java 8):
    1. Java 11
    2. Java 8 [*]
    Enter index to use: 1
    Define value for runtimeStack(Default: TOMCAT 8.5):
    1. TOMCAT 9.0
    2. TOMCAT 8.5 [*]
    Enter index to use:
    Please confirm webapp properties
    AppName : payaramicro-hello-azure-1601009217863
    ResourceGroup : payaramicro-hello-azure-1601009217863-rg
    Region : westeurope
    PricingTier : PremiumV2_P1v2
    OS : Linux
    RuntimeStack : TOMCAT 8.5-java11
    Deploy to slot : false
    Confirm (Y/N)? : y
    [INFO] Saving configuration to pom.
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time:  22.302 s
    [INFO] Finished at: 2020-09-25T13:47:11+09:00
    [INFO] ------------------------------------------------------------------------
    
  4. 將項目 runtimeTOMCAT 8.5 修改為 java11 ,並將 deployment 項目從 *.war 修改為 *.jar。 然後將 區<appSettings>段新增至 <configuration>WEBSITES_PORTWEBSITES_CONTAINER_START_TIME_LIMITPORT區段。 的 XML 項目 azure-webapp-maven-plugin 看起來應該類似下列範例:

    <plugin>
      <groupId>com.microsoft.azure</groupId>
      <artifactId>azure-webapp-maven-plugin</artifactId>
      <version>1.9.1</version>
      <configuration>
        <schemaVersion>V2</schemaVersion>
        <resourceGroup>microprofile</resourceGroup>
        <appName>payaramicro-hello-azure-1591860934798</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>
              </includes>
            </resource>
          </resources>
        </deployment>
      </configuration>
    </plugin>
    

將應用程式部署至 Azure

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

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

    mvn clean package
    
  2. 使用 Maven 將 Web 應用程式部署至 Azure;例如:

    mvn azure-webapp:deploy
    

如果您成功部署,您會看到下列輸出。

[INFO] Successfully deployed the artifact to https://payaramicro-hello-azure-1601009217863.azurewebsites.net
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:58 min
[INFO] Finished at: 2020-09-25T13:55:13+09:00
[INFO] ------------------------------------------------------------------------

Maven 會將 Web 應用程式部署至 Azure。 如果 Web 應用程式或 Web 應用程式方案尚未存在,將會為您建立它。 可能需要幾分鐘的時間,Web 應用程式才會顯示在輸出中顯示的URL。 流覽至網頁瀏覽器中的 URL。 您應該會看到下列畫面。

顯示 Payara Micro 首頁的網頁瀏覽器螢幕快照。

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

您的 Web 應用程式將會列在 microprofile 資源群組中

您可以在 Web 應用程式的 [概觀] 頁面上選取 [瀏覽],以存取您的 Web 應用程式。 確認部署成功且正在執行。

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

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

az webapp log tail \
    --resource-group microprofile \
    --name payaramicro-hello-azure-1601009217863

顯示記錄數據流的終端機視窗螢幕快照。

清除資源

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

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

下一步

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

其他資源

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