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 サンドボックスの Cloud Shell には、Azure にデプロイできる状態の Java アプリケーションを Maven でビルドするために必要なものがすべて用意されています。

Note

Learn サンドボックスの Cloud Shell ではなく、ご自分個人の Azure アカウントを使用している場合は、次の項目がインストールされていることを確認する必要があります。

項目 バージョン
Java JDK 1.8
Maven 3.0 以降
Azure Functions Core Tools 2.7 以降

Maven プラグイン アーキテクチャとは

Maven は、一連のプラグインを実行するためのフレームワークです。 Maven の各プラグインには、開発者が指定するパラメータによって駆動される特定の動作があります。 たとえば、プラグインでは、WAR (Web Application Archive) ファイルまたは JAR (Java Archive) ファイルを作成するか、ご自分のコードがどのようにコンパイルされるか、また単体テストの実行が制御されます。 ほぼすべてのアクションは、Maven プラグインを介して実装できます。

プラグインではタスクが "目標" として定義されており、1 つのプラグインが複数の目標を持つことができます。 たとえば、Maven Clean プラグインのただ 1 つの目標は、プロジェクトのターゲット ディレクトリを削除することです。

Maven の POM (Project Object Model) ファイルは、ご自分のアプリケーションのプロジェクト ファイルの一部である XML ベースの構成ファイルです。 POM ファイルの名前は pom.xml で、これにはご自分のアプリケーションに必要な各プラグインと、各プラグインで必要なパラメーターが定義されています。

Maven を使って Azure 関数をビルドまたはデプロイするときは、pom.xml ファイルに azure-functions-maven-plugin を必ず含める必要があります。 ご自分の 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 を指定します。これは通常、アーキタイプの作成者です。
-DarchetypeArtifactId この例では Azure Functions のアーキタイプである、アーキタイプの ID を指定します。
-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 関数は、Azure Cloud Shell 内から直接作成できます。 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 関数を作成します。