Timer Triggerによって、一定時間が来たタイミングでAzure Functionsが動作するアプリケーションを作成できるが、このアプリケーションは、Azure Portal上で手動で実行することもできる。
今回は、Azure Functions上でTimerTriggerによって動作するJavaアプリケーション(Spring Boot上)を手動で実行してみたので、共有する。
前提条件
下記記事のサンプルプログラムを作成済であること。
作成したサンプルプログラムの修正
前提条件の記事のサンプルプログラムを、10分毎にTimerTriggerイベントが発生するように修正する。なお、下記の赤枠は、前提条件のプログラムから変更したプログラムである。

修正したTimerTriggerイベントが発生したタイミングで呼ばれるハンドラークラスの内容は以下の通りで、10分毎にTimerTriggerイベントが発生するように修正している。
package com.example;
import org.springframework.cloud.function.adapter.azure.FunctionInvoker;
import com.example.model.TimerTriggerParam;
import com.example.model.TimerTriggerResult;
import com.microsoft.azure.functions.ExecutionContext;
import com.microsoft.azure.functions.annotation.FunctionName;
import com.microsoft.azure.functions.annotation.TimerTrigger;
public class TimerTriggerTestHandler
extends FunctionInvoker<TimerTriggerParam, TimerTriggerResult>{
/**
* TimerTriggerによって、DemoAzureFunctionクラスのtimerTriggerTestメソッドを呼び出す.
* @param timerInfo TimerTriggerイベント情報
* @param context コンテキストオブジェクト
*/
// 「schedule = "0 */10 * * * *"」で、10分毎にTimerTriggerイベントが発生するようになっている
@FunctionName("timerTriggerTest")
public void timerTriggerTest(@TimerTrigger(name = "timerTriggerTest"
, schedule = "0 */10 * * * *") String timerInfo,
ExecutionContext context) {
context.getLogger().info("TimerTriggerTestHandler timerTriggerTest triggered: "
+ timerInfo);
TimerTriggerParam param = new TimerTriggerParam();
param.setTimerInfo(timerInfo);
param.setLogger(context.getLogger());
handleRequest(param, context);
}
}その他のソースコード内容は、以下のサイトを参照のこと。
https://github.com/purin-it/azure/tree/master/azure-functions-timer-trigger-manual/demoAzureFunc
また、その後のビルドとデプロイ手順については、前提条件の記事を参照のこと。
関数の手動実行
Azure Functions上でTimerTriggerによって動作するJavaアプリケーション(Spring Boot上)を手動で実行するのは、Azure Portal上で実行できる。その手順は、以下の通り。
1) Azure Functionsの概要を表示した状態で「関数」メニューを押下する。

6) Azure Functionsの関数「timerTriggerTest」が実行され、HTTP応答コードが202(リクエストが受理された)が返されることが確認できる。また、ログの先頭を見ると、リクエストが送信された時間が確認できる。

7) ログを確認するため、「モニター」メニューを押下する。ログの一覧が表示されるため、リクエストが送信された時間のログのリンクを押下する。

8) ログに、以下の赤枠の、ハンドラークラスとサービスクラスのログが出力されることが確認できる。ログが実行されたのは12:16であるが、ログを見ると、Timer Triggerが動作するタイミングは「12:10」「12:20」と10分置きであることが確認できる。

要点まとめ
- Azure Functions上でTimerTriggerによって動作するJavaアプリケーションは、自動で実行されるタイミングでなくても、Azure Portal上で手動実行できる。手動実行するには、Azure Portal上で実行したい関数の「コードとテスト」メニューを開いて実行すればよい。









