Azure Functionsの実行時間を指定する

2021-06-10
Functions

Azure Functionsは様々なトリガーをベースとしてサーバーレスアプリケーション実装することができるサービスです。 どんなトリガーがあるかは後ほど調べるとして、本日はタイマー設定でトリガーされる仕組みを見てみます。

Azure 関数

新しいAzure 関数を作成しようとすると上記のようなモーダルが表示され、 トリガーを選択するようになります。

ここで、タイマーは 0 */5 * * * * とでてくるのですが、 どういうことでしょ。

ドキュメントによると下記のライブラリーを使ってパースしているそうです。 https://github.com/atifaziz/NCrontab

そしてここのドキュメントによると ここで指定できるのは6つの文字列であると書いてあります。


* * * * * *
- - - - - -
| | | | | |
| | | | | +--- day of week (0 - 6) (Sunday=0)
| | | | +----- month (1 - 12)
| | | +------- day of month (1 - 31)
| | +--------- hour (0 - 23)
| +----------- min (0 - 59)
+------------- sec (0 - 59)

1項目目は0-59で秒の指定 2項目目は0-59で分の指定 3項目名は0-23で時の指定 4項目目は1-31で日を指定 5項目目は1-12で月を指定 6項目目は0-6で曜日を指定 0=日曜日

なんとなくわかりました。

さらなる詳細はこちらに記載されているとのことで、見てみましょう。 https://github.com/atifaziz/NCrontab/wiki/Crontab-Expression

*を使うとすべてがカバーされるとのことです。なので、たとえば、5項目目に*とすると毎月実装という意味合になります。

1,2,3,4 と表記しても 3,4,1,2 と表記しても関係ない=順番は関係ないそうです。 またレンジの場合で10-5と表記しても5-10と表記しても同じとのこと。

*/4 と表記すると4で割った数の都度実装という意味合いになります。なので5分に1回実装という場合は2項目目に*/5と記載します。 これはレンジと掛け合わせても使えるそうです。 例えば、1-30/5 初めの30分だけ5分に1回と表現することができます。

1-5,10,12,20-30/5のように全部混ぜて使用することも可能です。

ということで、 0 */5 * * * * は 5分に一回実装というトリガーであることがわかりました。

今日は毎日朝1時になったら昨日分のデータを集計するというトリガーを作りたかったので、下記のようになります。 0 0 1 * * * * となります。

公開日: 2021-06-10