Azure 関数をローカルで実行してテストする

完了

前の演習では、Azure Maven 原型を使用して Azure 関数プロジェクトを作成しました。 次のタスクでは、関数をビルドし、ローカルで実行して、それが機能することを確認します。

このユニットでは、関数をローカルで実行およびテストするのに役立つ Azure Functions Core Tools について学習します。 また、テスト用に HTTP ポートを開く方法、Cloud Shell で関数を実行する方法、Web ブラウザーで関数をテストする方法についても学習します。

Azure Functions Core Tools について

Azure Functions Core Tools は、ターミナル エミュレーターまたはコマンド プロンプトを使用してローカルで Azure Functions をビルドおよびテストするためのユーティリティ スイートです。 作成した Azure Functions がローカルで実行されている場合でも、テスト中にライブ Azure サービスにアクセスできます。 テストが完了し、関数を発行する準備ができたら、関数アプリケーションを Azure サブスクリプションにデプロイできます。

現時点では、Azure Functions Core Tools には 3 つのバージョンがあります。 ただし、一般的な規則として、以前のバージョンを特に使用する必要がある場合を除き、Azure にデプロイする関数を開発するときは、常に最新バージョンを使用する必要があります。 このモジュールでは、最新バージョンの Azure Functions Core Tools が含まれる Learn サンドボックスの Azure Cloud Shell を使用します。

Note

[学習] サンドボックスで Cloud Shell ではなく個人の Azure アカウントを使用している場合は、「Azure Functions Core Tools の操作」を参照して、さまざまなバージョンの Azure Functions Core Tools の説明、要件、インストール手順を確認する必要があります。

テスト用の Cloud Shell 環境の構成

Cloud Shell で実行される Web ベースのアプリケーションをテストする場合、アプリケーションをテストするには、次の 2 つの方法があります。

  1. Cloud Shell を使用してテスト用の外部ポートを開くことができます。これにより、HTTP 要求が Cloud Shell インスタンスの localhost ポートにルーティングされます。

    • Cloud Shell からポート 7071 を開くには、次の cURL コマンドを使用します。

      curl -X POST http://localhost:8888/openPort/7071
      
    • テストが完了したら、次の cURL コマンドを使用してポートを閉じます。

      curl -X POST http://localhost:8888/closePort/7071
      
  2. Cloud Shell の複数のインスタンスを開いて、アプリケーションをローカルでテストすることができます。

    • 最初のインスタンスでアプリケーションを実行します。

    • cURL を使用して、2 番目のインスタンスからアプリケーションをテストします。

次の演習では、最初のメソッドを使用してポートを開きます。

Cloud Shell での関数の実行

テスト用にポートを開いたら、次に、関数をビルドして実行します。 そのためには、次の手順を行ってください。

  1. Cloud Shell で、ディレクトリを実際のプロジェクトのルート フォルダーに変更します。

  2. アプリケーションをビルドするには、次の Maven コマンドを使用します。

    mvn clean package
    
  3. アプリケーションを実行するには、次の Maven コマンドを使用します。

    mvn azure-functions:run
    

    Maven によって関数のランタイム環境が準備されている間は、Azure Functions Core Tools のロゴが表示されます。

    Image showing the Azure Function Core tools logo.

  4. テストが完了したら、Azure Cloud Shell から CTRL + C コマンドを使用してサーバーを停止します。

HTTP 要求を使用した関数のテスト

このモジュールでは、Cloud Shell の 1 つのインスタンスを使用します。 そのため、Web ブラウザーで新しいタブを開いてアプリケーションをテストする必要があります。 ブラウザーのアドレス バーに、次の例のような URL を入力します。

https://gateway.westus.console.azure.com/n/cc-12345678/cc-12345678/proxy/7071/api/HttpExample?name=Bob

ただし、Cloud Shell の複数のインスタンスを使用している場合は、次の cURL コマンドを使用して、シェルの別インスタンスからアプリケーションをテストできます。

curl http://localhost:7071/api/HttpExample?name=Bob

次の演習では、このユニットで学習した内容を使用します。 テスト ポートを開き、Cloud Shell で関数を実行し、Web ブラウザーから関数をテストするために使用する必要がある URL を決定します。