依排程執行 Azure 函數

已完成

以設定的間隔執行一段邏輯是很常見的情況。 假設您是部落格擁有者,並且注意到訂閱者沒有閱讀您最近的貼文。 您決定最好的方式是每週傳送一封電子郵件,提醒他們查看您的部落格。 您透過在 Azure 中建立函數應用程式搭配計時器觸發程序來每週叫用您的函數,以實作此邏輯。

什麼是計時器觸發程序?

計時器觸發程序是以一致的間隔執行函數的觸發程序。 若要建立計時器觸發程序,您需要提供兩項資訊。

  1. 「時間戳記參數名稱」,這只是用來在程式碼中存取觸發程序的識別碼。
  2. 「排程」,即設定計時器間隔的 CRON 運算式。

什麼是 CRON 運算式?

「CRON 運算式」是代表一組時間的字串,由六個欄位所組成。

在 Azure 中的六個欄位的順序是:{second} {minute} {hour} {day} {month} {day of the week}

例如,假設要建立每五分鐘執行一次的觸發程序,CRON 運算式會像這樣:0 */5 * * * *

一開始,這個字串可能看起來令人困惑。 當我們更深入探討「CRON 運算式」時,將會回頭詳細說明這些概念。

若要建立「CRON 運算式」,您需要對一些特殊字元有基本的了解。

特殊字元 意義 範例
* 選取欄位中的每個值 星期幾欄位中的星號 "*" 表示「每天」
, 分隔清單中的項目 星期幾欄位中的逗號 "1,3" 表示只有星期一 (第 1 天) 和星期三 (第 3 天)。
- 指定範圍 小時欄位中的連字號 "10-12" 表示包含第 10、11 和 12 小時的範圍。
/ 指定增量 分鐘欄位中的正斜線 "*/10" 表示增量為每 10 分鐘。

現在,我們將回到原始的 CRON 運算式範例。 讓我們嘗試透過逐欄詳細說明,更充份了解該運算式。

0 */5 * * * *

第一個欄位代表秒。 此欄位支援值 0-59。 因為此欄位包含零,所以會選取第一個可行的值,也就是一秒。

第二個欄位代表分鐘。 值 "*/5" 包含兩個特殊字元。 首先,星號 (*) 表示「選取欄位中的每個值」。因為此欄位代表分鐘數,所以可能的值為 0-59。 第二個特殊字元是表示增量的正斜線 (/)。 當您將這些字元結合在一起時,表示會在所有 0-59 的值當中,選取每五個值的第五個值。 更簡單的說法就是「每五分鐘」。

其餘四個欄位會以數值表示 24 小時、月份中的一天、12 個月中的月份,以及 7 天週中的一天。 這些欄位的星號表示選取每個可能的值。 在此範例中,我們選取「每個月每天的每小時」。

當您將所有欄位放在一起時,運算式讀起來會是「每個月每天每小時每五分鐘的第一秒」。

如何建立計時器觸發程序

您可以在 Azure 入口網站中建立計時器觸發程序。 在函數應用程式中,從觸發程序範本清單選取 [計時器觸發程序]。 輸入您想要執行的邏輯。 提供時間戳記參數名稱CRON 運算式

在此課程模組中,我們將著重於在入口網站中建立觸發程序,但您也可以使用 Core Tools、Visual Studio 或 Visual Studio Code 以程式設計方式建立觸發程序。

計時器觸發程序會以一致的排程叫用函數程式碼。 為了定義計時器觸發程序的排程,我們會建置「CRON 運算式」,這是表示一組時間的字串。