前言

前一篇文章我們簡單介紹背景處理、Web 工作與 Web工作和 Azure Function 之間如何選擇。在這一篇,我們將較細部介紹 Azure Function (函數應用程式) 與簡單建立操作。本篇文章若有錯誤或任何建議,請各位先進不吝提出,謝謝。

關鍵字:Azure Function 介紹方案說明使用情境簡易操作說明





介紹

Azure Function 是一個在雲端輕鬆執行一小段程式碼或功能的解決方案,你只需要撰寫手頭上問題所需的程式碼,而不需要擔心整個應用程式、執行環境與基礎架構。下列是 Azure Function 一些主要功能:
  1. 多種語言選擇:C#、F#、Node.js、Python、PHP、Batch、Bash 或任何可執行程式。 您可以在 Azure Portal 內設定 Azure Function
  2. 使用付費:只有程式碼執行期間需要付費。Azure Function 也支援 NuGet 與 NPM,您可以加入自己喜歡的 lib
  3. 安全性:透過 OAuth 程序保護 Http 觸發函式 (如: Azure Active Directory,Facebook,Google,Twitter 和 Microsoft 帳戶)
  4. 簡單整合:輕鬆地整合 Azure Service 與 SaaS 產品
  5. 靈活開發:可以在 portal 上編輯程式。或透過 Github、Visual Studio Team Services 和其他支援開發工具設定 持續整合 或 佈署程式碼。

方案說明

當您建立 Function App,你必須選擇合適的方案:Consumption 與  App Service。
  1. App Service (應用程式方案):類似您的 Web,Mobile 和 API app 一樣執行您的功能。當您已經為其他應用程序使用 App Service 時,您可以在同一計劃上執行您的功能,無需額外費用。目前,Linux 託管目前僅適用於App Service 計劃。
  2. Consumption (情況方案):預設值。當您的 Function 運行時,Azure 提供了所有必要的資源。您不必擔心資源管理,只需支付程式碼執行時間相對的費用。他在執行期間可以依據需求添加 instance 來自動擴大 CPU 與記憶體。即時在高負載期間也能向外擴展。
Azure Function 執行期間擴展
Azure Function 使用縮放控制器來監視事件速度,並確定是擴大與縮小。縮放控制器對於每種觸發器進行掃描,如:您使用  Azure Queue 儲存體觸發器時,它會依據 Queue 的長度與最就資料時間進行擴展。


使用情境

1. Web application 後端處理: Web App 產生 Request →  將 Request 放入 Service Bus 佇列 → 透過 Azure Function 取出處理後 → 將資料放入 Cosmos DB

2. 即時檔案處理:將 PDF 檔案上傳至 Blob Storage 內 → 透過 Azure Function 處理 → 送至認知服務 (Cognitive Service) 進行處理 → 將取得資訊放入 SQL DB

3. 自動排程工作:Azure Function 每 15分鐘清除資料庫重複資料



簡易操作介紹

我們簡單介紹如何建立函數應用程式 (Function App)
Step 1. 在 Marketplace 輸入 function,尋找 函數應用程式

Step 2. 輸入應用程式名稱...等相關資訊,點選建立 以新增 函數應用程式

Step 3. 建立完成後,我們開啟剛剛建立的 函數應用程式,點選左邊函式 → Webhook → CSharp → 建立此函式 (您能依據你的需求選擇不同的案例語言,這裡僅為示範)

Step 4. 建立完成後,您會看到一段範例程式碼,當您透過 URL (HTTP POST 或 GET) 呼叫這段程式碼時,Azure Function 會進行回覆。您可以在這邊即時編寫程式、儲存執行測試

Step 5. 我們可點選執行進行編譯、除錯與測試。如下圖右方所示,您可以選擇測試的方法與帶入參數,下方則會顯示執行狀態與結果。

Step 6.您也能點選取得函數 URL,直接複製此函式的 URL提供介接、開發與測試使用