TimerTrigger/SpringBatch

TimerTriggerによって動作するAzure Functionsの関数を日本時間の指定した時刻に実行してみた

TimerTriggerによって動作するAzure Functionsの、TimerTriggerイベントの発生タイミングは、以下のサイトのNCRONTAB 式で指定できる。
https://docs.microsoft.com/ja-jp/azure/azure-functions/functions-bindings-timer?tabs=java#ncrontab-expressions

例えば、21時45分0秒にTimerTriggerイベントが発生するようにするには、NCRONTAB式で「0 45 21 * * *」と指定すればよいが、NCRONTAB式の既定のタイムゾーンは協定世界時 (UTC) になっているため、これを日本時間に変更する必要がある。

今回は、NCRONTAB式のタイムゾーンを日本時間に変更した上で、TimerTriggerによって動作するAzure Functionsの関数を日本時間の指定した時刻に実行してみたので、その手順を共有する。

前提条件

下記記事のサンプルプログラムをAzure Functionsにデプロイ済であること。

TimerTriggerによって動作するAzure Functionsの関数を手動実行してみたTimer Triggerによって、一定時間が来たタイミングでAzure Functionsが動作するアプリケーションを作成できるが、こ...

NCRONTAB式のタイムゾーンを日本時間に変更

NCRONTAB式のタイムゾーンを日本時間に変更するのは、Azure Portal上で実行できる。その手順は、以下の通り。

1) Azure Functionsの概要を表示した状態で、「構成」メニューを押下する。
Timezoneの変更_1

2) NCRONTAB式のタイムゾーンを日本時間に変更する設定を追加するため、「新しいアプリケーション設定」ボタンを押下する。
Timezoneの変更_2

3) 名前に「WEBSITE_TIME_ZONE」、値に「Asia/Tokyo」を指定し、「OK」ボタンを押下する。
Timezoneの変更_3

4) 以下のように、名前が「WEBSITE_TIME_ZONE」であるアプリケーション設定が追加されていることが確認できるので、「非表示の値です。値を表示するには、クリックしてください」のリンクを押下する。
Timezoneの変更_4

5) 名前が「WEBSITE_TIME_ZONE」の値が、指定した「Asia/Tokyo」と設定されていることが確認できる。ここで「保存」ボタンを押下する。
Timezoneの変更_5

6) 以下の確認画面が表示されるので、「続行」ボタンを押下する。
Timezoneの変更_6

7) 保存が完了すると、以下の画面表示内容となる。
Timezoneの変更_7

「FlexClip」はテンプレートとして利用できる動画・画像・音楽などが充実した動画編集ツールだったテンプレートとして利用できるテキスト・動画・画像・音楽など(いずれも著作権フリー)が充実している動画編集ツールの一つに、「FlexCli...

TimerTriggerによって動作するAzure Functionsの関数の、設定変更前・設定変更後のログの内容は以下の通りで、設定変更後は赤枠のログ出力された時刻が日本時間になっていることが確認できる。

<変更前>
ログ_Timezone変更前

<変更後>
ログ_Timezone変更後



サンプルプログラムの変更と実行結果(ローカル)

前提条件の記事のプログラムの「TimerTriggerTestHandler.java」を、以下のように、21時45分0秒にTimerTriggerイベントが発生するように変更後、ローカル環境で実行した結果は、以下の通り。

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

「mvn azure-functions:run」で実行した結果は以下の通りで、赤枠のログの「Next」を確認すると、21時45分0秒にTimerTriggerイベントが発生していることが確認できる。
ローカル環境での実行結果

なお、ローカル環境でのデプロイ・実行方法については、以下の記事の「サンプルプログラムの実行結果(ローカル)」を参照のこと。

Azure Functions上でTimerTriggerによって動作するJavaアプリケーション(Spring Boot上)を作成してみたこれまでは、HTTPリクエストによりAzure Functionsが動作するアプリケーションのみ作成してきたが、Timer Trigge...



サンプルプログラムの変更と実行結果(Azure上)

前提条件の記事のプログラムの「TimerTriggerTestHandler.java」を、以下のように、21時55分0秒にTimerTriggerイベントが発生するように変更後、Azure環境上で実行した結果は、以下の通り。

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

TimerTriggerによって動作するAzure Functionsの関数の、実行後のログの内容は以下の通りで、赤枠のログの「Next」を確認すると、21時55分0秒にTimerTriggerイベントが発生していることが確認できる。
Azure環境での実行結果

なお、Azure環境でのデプロイ・実行方法については、以下の記事の「サンプルプログラムの実行結果(Azure上)」を参照のこと。

Azure Functions上でTimerTriggerによって動作するJavaアプリケーション(Spring Boot上)を作成してみたこれまでは、HTTPリクエストによりAzure Functionsが動作するアプリケーションのみ作成してきたが、Timer Trigge...

要点まとめ

  • TimerTriggerによって動作するAzure Functionsの関数を日本時間の指定した時刻に実行するには、Azure Portal上でNCRONTAB式のタイムゾーンを日本時間に変更した上で、NCRONTAB式で発生タイミングを指定すればよい。