包含標籤 azure-functions 的文章

使用 Azure Functions + Line Notify 來定時提醒公車到站時間

Image

在上週的 使用 Powershell + 工作排程器 + Line Notify 來定時提醒公車到站時間,我們利用工作排程器來定時觸發腳本,藉此用 Line 提醒我下班的公車還有多久才來。

做完之後靈機一動,對呀!最近上班挺常接觸到 Azure Functions 這個方便東東,不如就把這個小提醒給架設到 Azure Functions 上吧!

這樣就省卻了特定主機要開著掛工作排程器的困擾,又可以用香香的 Azure 工具來控制監聽的開關,豈不美哉。

如此如此這般這般,讓我們開始建立 Azure Functions 服務吧!

建立 Azure Functions 資源

Azure Functions 是 Azure 推出的一款無伺服器(Serverless)服務,簡單來說就是伺服器之類的麻煩事就交給 Azure 去處理,我們只要專心寫功能就好。對我這種愛寫小腳本的偷懶工程師來說,可以說是香到爆的服務。

小提醒:Azure Functions 是一款收費服務,使用前請務必確認定價

在這篇文章撰寫當下,Azure Functions 有提供每月免費執行一百萬次的授權,對我們每天一次的公車通知來說綽綽有餘了(我們應該不會搭這麼多趟吧…?)

……

閱讀全文


菜雞抓蟲:Azure Functions ServiceBus Trigger 執行過久時會重複觸發 Functions

Image

TL;DR

當發現需要執行很久的 ServiceBus Trigger Function 有重複執行的情況出現時,可以嘗試到官方的 Host.json 設定指引,按照 SDK 版本找到對應的「訊息鎖定最大持續時間」設定,例如 maxAutoLockRenewalDuration(延伸模組 5.x+)或 maxAutoRenewDuration(Functions 2.x),並加入專案的 Host.json

因為 ServiceBus 在傳遞訊息之後,如果超過一段時間(MaxAutoRenewDuration)內沒有得到回應,就會解除信件的鎖並嘗試重新傳遞,這時候如果原先的 Function 仍在執行,就會一前一後重複執行 Function 並發生許多光怪陸離的事,例如寫入兩筆資訊、重複複製資料之類的。

建議如果調整了有 ServiceBus Trigger Function 的 Azure Functions Timeout 設定時,或是發現某支 ServiceBus Trigger 的 Functions 執行時間過長,就要一併注意 MaxAutoRenewDuration 的設定,避免重複執行的情況出現。

……

閱讀全文