我正在寻找一种正确扩展 Azure Functions 的方法,但遇到了问题。
我有一组 IoT 设备,通过 HTTP 向 Azure 发送数据(为此,有一组自动扩展的 Azure Functions)
但现在有一种新的 IoT 设备可以通过 TCP/IP 持久连接发送数据,据我所知,Azure Functions 不支持此功能。
有人对如何实现这个有一些想法吗?
我想到的一个选择是让虚拟机处理 TCP 连接并将数据发送到队列,以便函数可以以可扩展的方式从队列中提取数据。
提前致谢,干杯。
最佳答案
如果您的设备仅通过持久 TCP/IP 连接进行通信,那么您需要实现 IoT 网关。 IoT 网关基本上是一个在本地或云端运行的应用程序,它与 1 个或多个 IoT 设备通信,然后网关可以连接到 Azure IoT 中心等服务并与之通信。从那里,您可以将事件发送到 Azure IoT 中心,然后使用 Azure 流分析之类的工具在云中处理这些事件,然后发送到事件中心或服务总线队列(例如)。然后,一旦进入队列,您就可以编写一个要触发的 Azure 函数,以在这些事件发生时对其进行处理。
无法打开与 Azure Function 的持久 TCP/IP 连接。 Azure Functions 是无服务器计算,本质上是事件驱动的且运行时间短。建议 Azure 函数每次执行的最长运行时间不超过 5 分钟。
关于Azure Functions - TCP 持久,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48828653/