使用 Maven 原型來建立 Azure 函式

已完成

Maven 原型可為開發人員提供用於建立專案的基本建置組塊。 有多種原型可供使用,且每個不同的原型都會為開發人員提供可在其應用程式開發中使用的特定功能。 考慮到這一點,Microsoft 發行了可支援搭配 Azure Functions 使用的 azure-functions-archetype 原型。

在本單元中,您將了解開始使用 Maven 原型所需的項目。 您將了解如何搭配 Maven 使用 azure-functions-archetype,且會探索如何建立範例函式。

開始使用 Maven 原型和 Azure Functions

使用 Maven 將 Java Web 應用程式的建置自動化

Maven 是建置及管理任何 JAVA 型專案最常使用的 JAVA 建置工具。 它透過提供建置專案的標準方式,協助開發人員簡化 JAVA 專案的建置。 此標準包含專案構成項目的明確定義、發佈專案資訊的簡單方式,以及跨數個專案共用 JAR 的方式。 Maven 的目標是:

  • 讓建置程序更加容易
  • 以透明方式移轉至新功能
  • 提供統一的建置系統
  • 實作有關開發最佳做法的指導方針

身為 Java 開發人員,您已熟悉如何使用 Maven 來建立及編譯應用程式。 當設定開發環境時,您可能會保持使用最新版本的 Maven。 在本課程模組中,您會使用 Learn 沙箱中的 Azure Cloud Shell 來完成練習。 Learn 沙箱中的 Azure Cloud Shell 包含所有必要項目,可供您使用 Maven 來建置準備好部署至 Azure 的 JAVA 應用程式。

注意

如果您使用個人 Azure 帳戶而不是 Learn 沙箱中的 Cloud Shell,則必須確定已安裝下列項目:

項目 版本
Java JDK 1.8
Maven 3.0 或更高版本
Azure Functions Core Tools 2.7 或更高版本

什麼是 Maven 外掛程式架構

Maven 是一系列外掛程式的執行架構。 每個 Maven 外掛程式都有由開發人員提供的參數所驅動的特定行為。 例如,外掛程式會管理要建立 Web 應用程式封存 (WAR) 還是 Java 封存 (JAR) 檔案、程式碼的編譯方式及執行單元測試。 幾乎所有動作都可透過 Maven 外掛程式來執行。

外掛程式會將工作定義為「目標」,且外掛程式可以有數個目標。 例如,Maven Clean 外掛程式有一個目標,就是移除專案的目標目錄。

Maven 專案物件模型 (POM) 檔案是 XML 型的設定檔,其為應用程式專案檔案的一部分。 POM 檔案的名稱為 pom.xml,這些檔案包含應用程式所需的每個外掛程式定義,包括每個外掛程式所需的參數。

使用 Maven 來建置或部署 Azure 函式時,請務必將 azure-functions-maven-plugin 包含在 pom.xml 檔案中。 將該外掛程式新增至 pom.xml 檔案的詳細資料,請參閱本單元的<以互動方式使用 archetype>一節。

什麼是 Maven 原型?

從許多方面來說,Maven 原型類似於範本。 原型是可用來加速開發流程的模型 (或模式)。 您可以使用專案特有的參數來自訂原型,您將在產生流程期間提供這些參數。 每個原型都是根據最佳做法來建立,並可加以設定以符合組織需求。

以互動方式使用原型

若要使用 Azure Functions 的 Microsoft 原型來產生專案,您可使用 mvn archetype:generate 命令,此命令會進入提示輸入值的互動模式。 例如:

mvn archetype:generate \
  -DarchetypeGroupId="com.microsoft.azure" \
  -DarchetypeArtifactId="azure-functions-archetype"

其中:

參數 描述
archetype:generate 指示 Maven 從原型產生專案。
-DarchetypeGroupId 指定原型的群組識別碼,通常是原型的建立者。
-DarchetypeArtifactId 指定原型的識別碼,在此範例中是 Azure Functions 原型。
-DjavaVersion=8 若您想讓函式在 Java 11 上執行,請使用 -DjavaVersion=11

當使用 mvn archetype:generate 命令建立專案時,Maven 會建立專案的資料夾,而根資料夾會包含專案的 pom.xml 檔案。

如果在執行 mvn archetype:generate 命令時指定 azure-functions-archetype,則專案中的 pom.xml 檔案具有包含 Azure Functions 外掛程式所需資訊的區段。 例如:

<project>
  . . .
  <build>
    . . .
    <plugins>
      . . .
        <plugin>
            <groupId>com.microsoft.azure</groupId>
            <artifactId>azure-functions-maven-plugin</artifactId>
            <version>${azure.functions.maven.plugin.version}</version>
            <configuration>
                <!-- function app name -->
                <appName>${functionAppName}</appName>
                <!-- function app resource group -->
                <resourceGroup>java-functions-group</resourceGroup>
                <!-- function app service plan name -->
                <appServicePlanName>java-functions-app-service-plan</appServicePlanName>
             . . .
         </configuration>
      </plugin>
    </plugins>
  </build>
</project>

使用 Azure Cloud Shell 建立基本函式

您可直接從 Azure Cloud Shell 內建立基本的 Azure 函式。 Azure 會確保提供所有必要程式庫以供建立及建置專案,包括 Maven 和 Azure Functions 外掛程式。

下列步驟說明使用 Cloud Shell 建立 Azure 函式的基本流程:

  1. 從 Cloud Shell 執行 mvn archetype:generate 命令,並指定 azure-functions-archetype

  2. Maven 會提示輸入應用程式的 groupId,您將以反向網域名稱格式輸入,例如:com.microsoft.example

  3. Maven 會提示輸入應用程式的 artifactId 名稱,這應該是您專案的唯一參考,例如:myapp

  4. Maven 可能會提示輸入其他參數,您可按下電腦上的 Return/Enter 鍵來接受預設值。 目前只需要 groupIdartifactId

  5. Maven 會建立本機 Azure 函式專案。 完成 mvn archetype:generate 命令後,您就會有準備好進行自訂及建置的簡單 JAVA 專案。

在下列練習中,您將使用此知識來建立使用 Maven 的 Azure 函式。