使用 Maven 原型创建 Azure 函数

已完成

Maven 原型为开发人员提供用于创建项目的基本构建基块。 有多种可用的原型,每个不同的原型提供的都是开发人员可在其应用程序开发中使用的特定功能。 考虑到这一点,Microsoft 发布了支持用于 Azure Functions 的 azure-functions-archetype 原型。

在本单元中,你将学习开始使用 Maven 原型所需的知识。 你将了解如何将 azure-functions-archetype 与 Maven 配合使用,并了解如何创建示例函数。

开始使用 Maven 原型和 Azure Functions

使用 Maven 自动生成 Java Web 应用

Maven 是最常用的 Java 构建工具,可用于构建和管理任何基于 Java 的项目。 它通过提供构建项目的标准方法,帮助简化开发人员构建 Java 项目的过程。 此标准包括:明确定义项目包含的内容、发布项目信息的简单方法,以及跨多个项目共享 JAR 的方法。 Maven 的目标是:

  • 简化生成过程
  • 以透明方式迁移到新功能
  • 提供统一的生成系统
  • 实现开发最佳做法的相关准则

作为 Java 开发人员,你已经熟悉如何使用 Maven 来创建和编译应用程序。 设置开发环境时,可能会更新至最新版本的 Maven。 在本模块中,你将使用 Learn 沙盒中的 Azure Cloud Shell 完成练习。 Learn 沙盒中的 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 清理插件有一个目标,即删除项目的目标目录。

Maven 项目对象模型 (POM) 文件是基于 XML 的配置文件,它是应用程序的项目文件的一部分。 POM 文件被命名为 pom.xml,它们包含应用程序所需的每个插件的定义,其中包括每个插件所需的参数。

使用 Maven 生成或部署 Azure 函数时,请确保将 azure-functions-maven-plugin 包含到 pom.xml 文件中。 若要详细了解如何将该插件添加到 pom.xml 文件,请查看本单元的“以交互方式使用原型”部分。

什么是 Maven 原型?

从很多角度上看,Maven 原型与模板是类似的。 一个原型即是一个模型或一种模式,可用于加快开发速度。 可以使用特定于项目的参数(在生成过程中提供)对原型进行自定义。 每个原型在生成时都遵循可配置为满足组织要求的最佳做法。

交互式地使用原型

若要使用适用于 Azure Functions 的 Microsoft 原型来生成项目,可以使用 mvn archetype:generate 命令以进入提示你输入值的交互模式。 例如:

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

其中:

参数 描述
archetype:generate 指示 Maven 通过原型生成项目。
-DarchetypeGroupId 指定原型的组 ID,该 ID 通常是原型的创建者。
-DarchetypeArtifactId 指定原型的 ID,本示例中的原型是 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 可能会提示输入其他参数,可以通过按下计算机上的回车键/Enter 键接受默认值。 目前,必需的参数只有 groupIdartifactId

  5. Maven 会创建一个本地 Azure 函数项目。 完成 mvn archetype:generate 命令后,你会获得一个可供自定义和构建的简单 Java 项目。

在以下练习中,你将借助这些知识使用 Maven 创建 Azure 函数。