建立一個 function App
使用 Azure Functions
前言
最近聽到有人推薦我玩 Servreless,從 Azure Functions 的介紹官網來看,每百萬次執行才約略 6 台幣,我們可以用它來架社簡單性的工作,也不用花時間設置機器,就可以讓自己的程式碼在雲端上,極低的價格跑起來。
在上一篇文章,我說明 Serveless 開發環境的設置,這篇文章,我會透過建立 HTTP trigger ,讓使用者可以透過 HTTP 呼叫的方式執行函式,並且產生結果。
使用 VS Code 的 Azure Function 套件與模板建立 HTTP Trigger
我在桌面上建立一個叫做 serverless 的資料夾,並用 VS code 打開,並且按照下面的 GIF 圖片點擊建立專案,選擇要開發的語言,因為我設立 HTTP trigger 最後選擇 Anonymous Function。
其中,設置 HTTP Trigger 的意思是,使用 HTTP 請求來觸發並執行模板產生的程式碼。
執行 Azure Functions
執行的方式很簡單,在終端機輸入 func host start
即可
當你看到 HttpTrigger: [GET,POST] http://localhost:7071/api/HttpTrigger
顯示在終端機介面,則表示執行成功。
觀察 Function 的運作
首先,這個 HTTP trigger 可以透過使用瀏覽器瀏覽:
http://localhost:7071/api/HttpTrigger
我們可以從程式碼中稍微知道,如果沒有傳入 body.name
或 query.name
瀏覽器會顯示以下訊息:
關於 body.name
的賦值方式,我們可以透過 postman 等工具,透過 form post 方式送 name
給 App,但是為了方便,我直接透過 URL 查詢字串來為 query.name
賦值:
當瀏覽器顯示以下訊息,表示我們成功地開始了透過 HTTP 觸發第一個 Function 的執行:
Functions 的計費方式
我深信這個會是企業營運時考量的重點,因此在 Azure 官方文件有記載以下兩種計費方式:
第一種是,當函式執行時,Azure 會提供所有必要的運算資源,我們只需支付程式碼執行時間的費用。
第二種則是,你已經在 Azure 上開了 App Service,亦即有台 VM 已經在雲端上執行,如果你透過那台 VM 執行函式時,不會另外收錢。