我一直以來都是 Serverless 架構的信徒,因為實在是不太想自己管伺服器,我從 2018 年就開始採用 Azure Functions 技術,到目前為止歷經了 4 個大版本,到現在終於算是穩定些了。不過即便到目前為止,你要是照著官方文件下去設定,肯定會在很多不同的環節鬼打牆,地雷一直都沒有少過。這篇文章我將介紹如何使用 .NET 8.0 與 Azure Functions Core Tools 來開發函式應用程式,並說明如何部署應用程式到 Azure App Service 使用 Consumption Plan (Y1
) 方案來執行!
... 繼續閱讀 ...
當你在建立 Function App 時也同時啟用了 Application Insights 的話,預設會啟用內建的記錄機制(built-in logging),並且會把記錄儲存在 Azure Storage 儲存體帳戶的 Table 中。我們有個 Azure Function (v1) 應用程式,至今穩定運作了 4 年,但最近發現就算沒有什麼流量,儲存體的費用也很高。因為我們的網站最近已經沒有什麼流量,怎麼還會花這麼多錢呢?我分析了一下,發現光是 Table Storage 就佔用儲存體有 113 GiB 之多這才驚覺,原來是 Function App 搞的鬼,他們把所有監控的數據都自動儲存到指定的 Azure Storage 儲存體帳戶之中了!今天我就來說明如何有效率的刪除這些過時的紀錄,避免不必要的資源耗用。
... 繼續閱讀 ...
上周我們遇到一個非常罕見的問題,一群人費了九牛二虎之力才徹底釐清案情,並且成功修復問題。我們在部署 Azure Functions 的時候,大部分的情境底下都是正常的,唯獨將站台重新部署到 Linux 平台的 App Service Plan 之後,詭異的狀況就此發生。由於案發過程過於冗長,我打算摘要記錄一下我們遭遇的現況與解決方法。
... 繼續閱讀 ...
要在 Azure 實現即時連線式的無伺服器架構(Serverless architecture)其實相當容易,只要學會 Azure Functions 的開發方式,搭配著 Azure SignalR Service 就可以輕鬆實現,本篇文章我將說明實現這個架構的相關說明與注意事項。
... 繼續閱讀 ...
在用 .NET Core 3.1 開發 Azure Functions 的時候一直以來有個困擾,那就是每次改完程式都要回到 Terminal 中斷程式執行,並且重新啟動,沒有像其他應用程式那樣可以用 dotnet watch run
自動監視檔案變更就自動重啟應用程式。雖然這個功能沒有內建在 func start
命令中,但是我卻發現 .NET CLI 竟然有個 dotnet watch msbuild
可以用,雖然陽春了點,但其實也是還是可以滿足需求! 👍
... 繼續閱讀 ...
我們有個網站部署在 Azure Function App 之中,不過該 Function App 有設定 Private Link 封閉網路,所以網站部署不能從外網連入,必須從私有 VNet 中的 VM 進行部署。本篇文章我將分享從私有網路環境部署站台到 Function App 的步驟說明。
... 繼續閱讀 ...