//Build/ 2016 - Azure Functions 概述簡介

CreateYourFirstAzureFunction_960

雲端開發正在演進

資料無所不在,在雲端、地端以及在 Internet 連結的設備之間不斷的擴散。組織正在努力的在資料中將價值解開,並且要求他們的開發人員在不斷壓縮的時程中回應高可擴展性的解決方案。解決方案通常要求開發人員實作出隨選或是已排定時間的批次工作以實行交易、採集與處理資料,或即時做出反應。

這些需求迫使雲端運算典範演進並提供簡單與可擴展的事件驅動式解決方案,開發人員正在尋找方法抽象這些共同的問題與雲端應用程式的概念;釋放他們以聚焦於寫程式來解決在高速與資料驅動的世界中的真正問題。

Azure Functions 概要

今天,Microsoft 宣佈 Azure Functions 。Azure Functions 是一個事件驅動、隨選運算並延展現有的Azure 應用程式平台能力的經驗以實作由事件觸發的程式碼於 Azure 或是第三方服務以及地端的系統。Azure Functions 允許開發人員由連接資料來源或訊息解決方案來執行動作因而讓處理與和事件互動變得容易。開發人員能利用 Azure Functions 建立 HTTP 為主的 API 端點並能由應用程式、行動裝置與 IoT 設備等組成的大範圍存取,Azure Functions 是以擴展為基礎與具隨選能力,因此你只需要依你使用的資源付費即可。

為了支援持續部署與整合,Azure Functions 提供了一個直觀、以瀏覽器為主的使用者介面,以允許你建立已排程或已觸發的程式碼片段,且使用不同的程式語言所實作。

多樣的觸發器與連接器允許開發人員於Azure服務中與事件互動,Azure Functions 的資料處理能儲存到 Azure 資料服務如 Azure Storage 、Azure SQL Database 與 DocumentDB 。

工作原理

 強大的開發人員體驗

使用 Azure Functions 的開發人員可以使用不同的程式語言 ( JavaScript、C#、Python 與 PHP 等 ) 實作事件,以及指令碼選項如 Bash 、Batch 與 PowerShell ,而且,開發人員可以上傳與觸發預先編譯 ( Pre-compiled ) 的可執行檔。 Azure Functions 提供一個 Git 終端點以允許無縫的將本地開發與使用像Visual Studio Team Services、GitHub 與 BitBucket 的持續整合接軌。開發人員可以採用內建於 Azure Functions 的記錄能力監控與排除 Azure Functions 的問題。

多樣的觸發選項

Azure Functions 能以多種方法觸發,包含藉由 CRON 運算式預先定義的時間、當 Azure Storage Blob 容器變更、Azure Queue 的變更、由 Service Bus 傳入訊息,以及 HTTP 觸發器等。因 HTTP 的支援, Fucntions 能夠由任何支援 Web Hooks 的 SaaS 產品發射出的事件進行互動,它們都很容易設定以及只需要最小的組態。

存取與處理資料的創新方法

Azure Functions 變得比以往更簡單,不僅是讓以在其他服務的資料觸發程式碼,也能存取與處理資料。隨著 Functions 繫結,開發人員能簡單的透過它們的功能與其他資料來源與服務互動, 而不必擔心 Function 的資料來源與目的地。繫結 ( Binding ) 使工作像加入訊息到 Queue 或是擷取一個 Blob 就如同傳遞 JSON 到 Function 輸出變數或是由 Function 輸入變數讀取 Blob 般簡單。利用這個能力,開發人員只需知道非常小,關於將與其互動的服務的細節,並簡單的與不同的服務交換。

 譯註:這一段的意思是,Azure Functions 會將其他服務傳遞資料的行為封裝成 Function 的參數,例如讀取 Blob 時,Azure Functions 會將 Blob 物件的資訊傳給 Function ;取得 Queue 訊息時,Azure Functions 也會有一個參數表示收到的 Queue 訊息。利用這樣的方式抽象化了與其他服務的互動方式,開發人員就不需要了解太多服務的細節,如 API 的使用。

 

“ Serverless ” 的執行模型

PaaS 解決方案的其中一個價值主張是由程式碼抽象化作業系統層,底下的平台提供預先組態的作業系統映像且不需要任何修補或維護工作,且能依應用程式負載需要自動擴展。Azure Functions 延伸了 PaaS 的概念以提供開發人員自底下的基礎建設而來的完整抽象化,透過依執行次數計費的模型來自動化以觸發喚起為主的擴展能力。若需要更多 Functions 的計費方式,可參考這裡。

開放原始碼執行期元件能在任何地方執行

Functions 的執行期元件、範本、UI 以及作為基礎的 WebJob SDK 全部都是開源專案並公開發展。 Azure Functions 執行期元件也將作成可攜式,因此你可以執行 Function 在任何地方,在 Azure 、在你的資料中心或其他雲端。

其他好處

Azure Functions 允許開發人員運用開發人員生產力的功能,像是部署槽 ( deployment slot ) 、簡易驗證  ( easy auth )、以及其他更多。需要對他們的應用程式的容器做細粒度控制 ( fine-gained control ) 的客戶可以執行 Azure Functions 在傳統的 App Service Plan 像是 App Service Environment ( ASE )。另外,客戶已有應用程式、API 或資料庫已部署在公司防火牆內,也可以由端資料中心使用 Azure 技術如混合式連線  ( Hybrid Connection ) 或虛擬網路來觸發 Azure Functions 或是儲存資料到地端系統。

開始入門

若要開始,請到 Azure Functions 入口網站並依照其步驟,它會開始詢問你想要使用的情境。

當你選擇了一個選項,你會被帶到 Azure Functions 的數位儀表板,你在那裡可以撰寫程式碼、組態事件、監控執行與管理其他一般設定。

瀏覽器內的程式碼體驗讓它可以用所有 Azure 支援的語言編寫程式,這裡你可以看到 JavaScript 以及瀏覽器教學的下一步。

使用事件與資料頁面組態與管理你的事件與繫結也是一個簡單的流程。

接下來您可以

Azure Functions 今天進入預覽階段,並且將會開放給所有 Azure 客戶以使用我們的試用體驗。預計功能清單  ( backlog )  可在我們的 GitHub 網頁上找到。新功能將會在接下來數個月內釋出,並且我們很珍惜你的回饋意見。請在 Azure UserVoice 網站傳送你的意見,協助我們改變你想要使用 Azure Functions 在雲端建立應用程式的方法。

 

本文翻譯自 Introducing Azure Functions