スケジュールに従って Azure 関数を実行する

完了

設定した間隔でロジックを実行することはよくあります。 あなたはブログ所有者で、購読者が最新の投稿を読んでいないことに気付いたとします。 最善の対処として、1 週間に一度、ブログをチェックするようにお知らせメールを送信することにしました。 このロジックを実装するには、Azure で "タイマー トリガー" を使用して関数アプリを作成し、関数を週 1 回呼び出します。

タイマー トリガーとは

タイマー トリガーは、一定の間隔で関数を実行するトリガーです。 タイマー トリガーを作成するには、2 つの情報を指定する必要があります。

  1. タイムスタンプ パラメーター名。これは、コード内のトリガーにアクセスするための単なる識別子です。
  2. スケジュール。タイマーの間隔を設定する CRON 式です。

CRON 式とは

CRON 式は、一連の時刻を表す 6 つのフィールドで構成される文字列です。

Azure でのこの 6 つのフィールドの順序は {second} {minute} {hour} {day} {month} {day of the week} です。

たとえば、5 分ごとに実行されるトリガーを作成する CRON 式は、0 */5 * * * * のようになります。

最初は、この文字列は複雑に見えるかもしれません。 CRON 式を詳しく見た後で、これらの概念を分解します。

CRON 式を作成するには、いくつかの特殊文字について基本を理解している必要があります。

特殊文字 意味
* フィールド内のすべての値を選択する 曜日フィールドのアスタリスク "*" は 、毎日 を意味します。
, リスト内の項目を区切る 曜日フィールド内でのコンマ "1, 3" は、月曜日 (1 日目) と水曜日 (3 日目) を意味します。
- 範囲を指定する 時間フィールド内でのハイフン "10 - 12" は、10 時、11 時、および 12 時を含む範囲を意味します。
/ 増分を指定する 分フィールド内でのスラッシュ"*/10" は、10 分ごとの増分を意味します。

次に、元の CRON 式の例に戻り、フィールドごとに分割して理解を深めましょう。

0 */5 * * * *

最初のフィールドは秒を表します。 このフィールドでは、0 から 59 までの値を使用できます。 このフィールドには 0 が含まれているため、最初の指定可能な値である 1 秒を選択しています。

2 番目のフィールドは、分を表します。 "*/5" という値には 2 つの特殊文字が含まれています。 まず、アスタリスク (*) は、"フィールド内のすべての値を選択する" ことを意味します。このフィールドは分を表すため、取得可能な値は 0 から 59 までです。 2 つ目の特殊文字はスラッシュ (/) で、これは増分を表します。 これらの文字を組み合わせると、0 から 59 までのすべての値について、5 番目ごとの値を選択することを意味します。 簡単に言うと、"5 分ごと" です。

残りの 4 つのフィールドは、24 時間の日、月の日、12 か月の年の月、7 日間の週の日を数値で表します。 これらのフィールドにおいて、アスタリスクはすべての値を選択することを意味します。 この例では、"毎月の毎日の毎時" を選択します。

すべてのフィールドをまとめると、式は "毎時 5 分ごと、毎日、毎月の最初の秒" と読み上げられます。

タイマー トリガーを作成する方法

Azure portal でタイマー トリガーを作成できます。 関数アプリで、トリガー テンプレートの一覧から タイマー トリガー を選択します。 実行するロジックを入力します。 Timestamp パラメーター名CRON 式を指定します。

このモジュールでは、ポータルでのトリガーの作成に重点を置きますが、Core Tools、Visual Studio、Visual Studio Code を使用してプログラムでトリガーを作成することもできます。

タイマー トリガーは、一貫したスケジュールに基づいて関数コードを呼び出します。 タイマー トリガーのスケジュールを定義するには、CRON 式を作成します。CRON 式は一連の時間を表す文字列です。