Azure

Azure App ServiceからAzure Functionsのサービスを呼び出してみた

Azure Functionsのサービスは、HTTPリクエストの要求を通して呼び出されるため、Azure App ServiceからAzure Functionsのサービスを呼び出すこともできる。

今回は、Azure App ServiceからAzure Functionsのサービスを呼び出してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事に従ってAzure App Service, Azure Functionsのサンプルプログラムを作成済であること。

Azure App Service上でSpring Bootを利用したJavaアプリケーションを作成してみた前回は、Azure Potal上でApp Serviceを作成してみたが、今回は、前回作成したApp ServiceにSpring Bo...
Azure Functions上でSpring Bootを利用したJavaアプリケーションを作成してみた前回は、Azure Potal上でAzure Functionsを作成してみたが、今回は、前回作成したAzure FunctionsにS...

サンプルプログラムの修正

今回は、Azure App Serviceのサンプルプログラムの修正のみ行う。修正したサンプルプログラムの構成は以下の通り。
サンプルプログラムの構成
なお、上記の赤枠は、前提条件のプログラムから変更したプログラムである。

定義ファイルクラスの内容は以下の通りで、RestTemplateクラスのBean定義を作成している。

また、application.propertiesの内容は以下の通りで、Azure FunctionsのサービスのベースとなるURLを設定している。

さらに、コントローラクラスの内容は以下の通りで、demoAzureFunctionsクラスのAPIを呼び出す処理を追加している。

その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/azure/tree/master/call-azure-functions-spring-java/demoAzureApp



サンプルプログラムの実行結果

サンプルプログラムの実行結果は、以下の通り。

1) ローカル環境でdemoAzureFuncアプリを「mvn azure-functions:run」コマンドで起動する。
サンプルプログラムの実行結果_1_1

その後、Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)」とアクセスした場合の実行結果は以下の通りで、メッセージにdemoAzureFuncアプリの呼出結果が出力される。
サンプルプログラムの実行結果_1_2

2) ローカル環境でdemoAzureFuncアプリのapplication.propertiesの「demoAzureFunc.urlBase」を以下のように変更する。
サンプルプログラムの実行結果_2_1

また、demoAzureFuncアプリにアクセスした結果は、以下のようになっているものとする。
サンプルプログラムの実行結果_2_2

その後、Spring Bootアプリケーションを起動し、「http:// (ホスト名):(ポート番号)」とアクセスした場合の実行結果は以下の通りで、メッセージにdemoAzureFuncアプリの呼出結果が出力される。
サンプルプログラムの実行結果_2_3

3) 以下のように、Azure App Service上にサンプルプログラムをデプロイする。
サンプルプログラムの実行結果_3_1

なお、Azure App Serviceにデプロイする過程は、以下の記事の「App ServiceへのSpring Bootを利用したJavaアプリケーションのデプロイ」を参照のこと。

Azure App Service上でSpring Bootを利用したJavaアプリケーションを作成してみた前回は、Azure Potal上でApp Serviceを作成してみたが、今回は、前回作成したApp ServiceにSpring Bo...

その後、Azure App ServiceのURL「https://azureappdemoservice.azurewebsites.net/」とアクセスした場合の実行結果は以下の通りで、メッセージにdemoAzureFuncアプリの呼出結果が出力される。
サンプルプログラムの実行結果_3_2

なお、上記URLは、下記Azure App ServiceのURLから確認できる。
サンプルプログラムの実行結果_3_3

要点まとめ

  • Azure App ServiceからAzure Functionsを呼び出すには、REST API(Web API)を呼び出すためのメソッドを提供するRestTemplateクラスを利用すればよい。