【转】微软Azure Functions使用入门
微軟公司于近期發(fā)布了Azure Functions以支持AWS Lambda。本文將介紹如何開始使用這個事件驅(qū)動服務,以及這項服務是否適合您。
無論是超大規(guī)模云供應商、軟件開放人員還是企業(yè)管理員,目前最熱門的技術之一就是無服務器計算。也就是所謂的功能即服務,這些由事件驅(qū)動的服務可允許企業(yè)用戶在不需要提供虛擬機或容器集群的情況下完成應用程序代碼的部署,并可以由部署在另一個云服務上的應用,通過一個觸發(fā)事件來觸發(fā)執(zhí)行。
云功能是平臺即服務(PaaS)的一個自然延伸。這些云端功能不僅能夠讓云管理人員和開發(fā)人員免于受到服務器與存儲設備等細節(jié)問題的影響,而且完全可以從底層運行時基礎設施和操作系統(tǒng)中抽取代碼執(zhí)行。相關功能響應外部觸發(fā)事件而運行,所以它們最適合用于使用微服務和事件驅(qū)動組件的部署,而不是那些持久性的長期運行應用程序。
從2014年開始,亞馬遜網(wǎng)絡服務就開始通過Lambda來推廣無服務器模式,但是包括谷歌、IBM和微軟在內(nèi)的其他云供應商們已經(jīng)推出了功能即服務產(chǎn)品。微軟公司于去年11月發(fā)布的服務被稱為Azure Functions。
微軟Azure Functions 101
微軟的Azure Functions是基于在Azure App Service (PaaS)中使用的WebJobs軟件開發(fā)工具包的。這將有助于用戶將應用或腳本程序作為web或移動應用的一部分來運行,或者甚至將其公開作為可調(diào)用的API。因此,微軟Azure Functions可以使用WebJobs的功能,從而更容易地使用Azure Storage和Azure Service Bus(后者是一個發(fā)布與訂閱的消息隊列)。
功能包括了用所支持語言開發(fā)的執(zhí)行邏輯部分與描述功能綁定的JSON配置文件,例如名稱、數(shù)據(jù)類型以及綁定是發(fā)送還是接收數(shù)據(jù)。
作為一個事件驅(qū)動的服務,微軟Azure Functions非常適合處理數(shù)據(jù),其中涉及內(nèi)容包括了從物聯(lián)網(wǎng)(IoT)設備、開發(fā)微服務、開發(fā)集成其他代碼模塊或云服務,或者API開發(fā)。以下Azure事件或服務可觸發(fā)相關功能:
- 存儲blob活動,例如在容器中添加或更改數(shù)據(jù);
- 事件樞紐活動,例如用于IoT的流數(shù)據(jù);
- 網(wǎng)絡事件,例如HTTP請求或webhooks;
- Azure Service Bus,以及
- 計劃事件的計時器,類似于Cron job。
微軟Azure Functions還可與以下Azure和第三方發(fā)布事件的觸發(fā)器集成:
- Azure DocumentDB
- Azure事件中心
- Azure移動應用程序
- Azure通知中心
Azure Service Bus,包括可向Service Bus隊列發(fā)布消息的內(nèi)部部署的服務
- Azure Storage
- 通過webhooks的GitHub
- Twilio
一個可說明無服務器設計的簡單示例是使用微軟Azure Functions來響應和處理網(wǎng)絡表單。不同于讓網(wǎng)絡服務始終處于運行狀態(tài)并等待處理用戶輸入,Azure Functions是按照命令執(zhí)行任務。一旦激活后,該功能可以顯示存儲在Azure blob中的若干表單中的一個,處理已提交的字段并將處理結(jié)果保存在SQL或非SQL數(shù)據(jù)庫中。
與AWS Lambda比較
微軟Azure Functions與其他無服務器產(chǎn)品類似,特別是AWS Lambda。但是它們之間還是有著重大的區(qū)別,具體包括:
處理持久性數(shù)據(jù)的方法:兩種服務都使用了無狀態(tài)容器作為執(zhí)行機制,但是微軟Azure Functions還可以在Azure App Service應用程序環(huán)境中運行,這個環(huán)境配有專用虛擬機可讓用戶存儲不同執(zhí)行之間的狀態(tài)。
每個云服務支持的事件源:有關最新支持列表,請參閱Lambda和微軟 Azure Functions的開發(fā)人員文檔。
定價模式:兩家廠商都是根據(jù)總執(zhí)行時間和功能請求總數(shù)來綜合定價的。但是,具體細節(jié)是不同的。請務必查看Lambda 和 Functions 在它們各自網(wǎng)站上的最新費率信息 。
無服務器建議
由于無服務器功能是一個新概念,企業(yè)用戶仍然會采取審慎的態(tài)度試用,以求找到正式引入使用的正確時機。Functions能夠與事件驅(qū)動程序一起運行,例如處理用戶輸入或響應異步消息隊列中的事件。如同通用PaaS一樣,Functions有助于用戶在幾乎不了解初始容量要求的情況下部署新的應用程序,但是期望使用量會隨著時間推移而發(fā)散、爆發(fā)和發(fā)展。
例如,消息隊列的常見用途是處理來自外部源的數(shù)據(jù),例如在將物聯(lián)網(wǎng)數(shù)據(jù)保存至數(shù)據(jù)前對數(shù)據(jù)進行過濾和歸一化處理,以及上傳多媒體文件時壓縮或變更圖像或視頻文件的格式。企業(yè)用戶還可以使用Functions將Cron Jobs重新用于云端的批處理任務。
總結(jié)
以上是生活随笔為你收集整理的【转】微软Azure Functions使用入门的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第三家民营航空来了!京东航空递交合格审定
- 下一篇: 【转】面试:一个单例模式,足以把你秒成渣