本月初,微软为 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
评论