本月初,微軟為Azure IoT Gateway SDK提供了對自家無服務器事件驅動的平臺Azure Functions的支持,這一支持為在Azure基礎上構建物聯網解決方案的開發者提供了基于云的擴展能力。
Azure IoT Gateway SDK最早以Beta測試版的形式在今年四月的Hannover Messe活動中發布。使用ANSI C編寫的Azure IoT Gateway SDK是一種跨平臺框架,可在IoT網關層面提供擴展性。這樣的擴展能力使得各類設備,包括非TCP/IP設備可以使用包含Node、Java、C#在內的多種高級語言與云平臺通信。隨后該網關可與微軟的Azure IoT Hub通信,借此在設備和微軟云之間實現雙向通信。
Azure Functions是微軟進入無服務器領域的一個舉措。微軟首席產品組項目經理Nir Mashkowski稱Azure Functions是一種“事件驅動的按需計算體驗,可對現有Azure應用程序平臺進行擴展,實現了借助在Azure、第三方服務,以及企業本地系統中發生的事件觸發代碼運行的能力。”開發者可以使用包括JavaScript、C#、Python,以及PHP在內的多種語言編寫這種函數,這些函數可以暴露HTTP端點或用戶定義的觸發器,例如Blob存儲、事件中心,或WebHook。
通過讓Azure IoT Gateway SDK支持Azure Functions,微軟為構建物聯網應用程序的開發者提供了全新的能力,并為云端邏輯的執行提供了一個中央位置,開發者無需在自己的所有設備上運行并部署代碼。Azure IoT合作伙伴總監Sam George介紹了一種從Azure IoT Gateway SDK調用Azure Functions的使用場景:“如果現場的網關環境出錯了,例如本地設備無法連接或行為異常,而你想將診斷信息上傳至Azure IoT解決方案以便讓運維人員進行檢查,新增的Functions集成讓這一過程變得更簡單。只須創建獲取這些數據的Azure Function,存儲信息并通知運維人員即可 – 以后遇到問題只要從運行Azure IoT Gateway SDK的網關直接調用就行了。”
IoT網關內部的通信是通過模塊實現的。因此只須從網關中的模塊調用,即可執行Azure Function。模塊相互之間可以通過使用pub/sub或其他消息模式借助消息總線交換消息,進而實現數據的交換。模塊還可用于協議中介(Protocol mediation)、消息格式轉換、篩選和云通信。微軟還在Azure IoT Gateway SDK中提供了一些預置模塊,同時提供了相關接口,開發者可以借此創建自己的模塊。
圖片來源:https://github.com/Azure/azure-iot-gateway-sdk/blob/develop/doc/getting_started.md
查看英文原文:Azure Functions Support added to Azure IoT Gateway SDK