現在架構設計很常談到微服務和無伺服器,而在 Azure 上面最適合拿來做這類型應用的就是 Azure Function 了,Azure Function 支援很多觸發器 (Trigger),這邊針對 Queue 來介紹如何實做 Queue trigger 的 Azure Function。
前言
現在架構設計很常談到微服務和無伺服器,而在 Azure 上面最適合拿來做這類型應用的就是 Azure Function 了,Azure Function 支援很多觸發器 (Trigger),這邊針對 Queue 來介紹如何實做 Queue trigger 的 Azure Function。
實做
建立儲存體和 Queue
首先新增儲存體帳戶,搜尋 Storge Account 就可以找到此服務來建立。
詳細設定就不特別解釋每個設定,大部分都可以下一步完成,只有儲存體帳戶類型和複寫模式需特別注意選擇。
建立好之後,點選佇列 (Queue) 並且建立一個佇列。
新增佇列的時候名稱會在之後建立 Azure Function 時候使用到,這邊可以輸入 myqueue-items ,因為範本預設會使用這個名稱,當然也可以輸入自己想要的名稱,只要在後面建立程式的時候記得修改就好。
接下來到存取金鑰去取得金鑰,之後程式會使用到。
首先先下載官方的 Microsoft Azure Storage Explorer 來管理儲存體。安裝好之後打開程式,點選到 Storage Accounts -> 模擬器 -> Queue 來建立佇列。之後要測試的時候就可以使用了。
建立 Azure Function
開啟 VS 建立新專案,搜尋 Azure Finctions 可以看到範本來建立專案。
接下來到了底下畫面的時候建議選擇 Azure Functions v3,其中版本差別可以參考後面的圖,主要是程式語言支援度和一些功能上的差別。然後選擇 Queue trigger,再來輸入連線字串名稱和 Queue 名稱,這邊的 Queue 名稱就是我們前面建立佇列的時候輸入的名稱,如果沒有一致的話,到時候是無法正確觸發事件的。
接下來開啟 local.settings.json 新增前面步驟輸入的連線字串名稱,我這邊輸入的是 StorageConnectionAppSetting,值的部分如果要使用儲存體來測試就輸入 UseDevelopmentStorage=true ,要直接用 Azure 來測試就輸入前面建立時候取的的連線金鑰。
測試
再來直接執行程式,新增一個佇列,我們就可以看到觸發的結果了。這邊我用儲存體模擬器來測試。
之後我們就可以在輸出視窗看到我們輸入的佇列訊息了。
部署到 Azure
之後在專案上面按右鍵選擇發佈,就可以部署到 Azure 上面了。
結論
微服務和無伺服器還有很多可以介紹的主題,這邊是以最簡單的一個範例來介紹 Azure 上面最適合做這類型應用的服務,以這個範例來講,我們可以在程式碼部分寫發信的程式,就可以完成一個發信的微服務,後續只要把發信相關內容和資訊新增到佇列就可以完成觸發的動作,我們就可以把發信這一個功能獨立出來,因為很多時候我們程式並不需要等待發信的結果,像是會員註冊信件等,就會很適合這樣的情境。