Azure 函数 - TCP 持久

Azure Functions - TCP Persistent

我正在寻找一种正确扩展 Azure 函数的方法,但我遇到了问题。

我有一组通过 HTTP 将数据发送到 Azure 的物联网设备(为此有一组自动扩展的 Azure 函数)

但现在有一个新的物联网设备通过 TCP/IP 持久连接发送数据,据我所知,Azure Functions 不支持它。

有人知道如何实现这个吗?

我认为的一个选择是让 VM 处理 TCP 连接并将数据发送到队列,以便函数可以以可扩展的方式从队列中提取数据。

提前致谢,干杯。

我认为最好的办法是与设备协议脱钩;函数可以绑定到事件中心,您可以将代理放在容器中(很容易在 App Svcs 或 AKS 上托管和扩展它们)。

这样脆弱的部分(代理)很容易测试。

fanout.io 之类的内容可能会起作用,具体取决于协议。如果是 MQTT,使用 Azure IoT Hub 可能有意义。

如果您的设备仅通过持久 TCP/IP 连接进行通信,那么您将需要实施物联网网关。 IoT 网关基本上是一个运行 on-premises 或在云中运行的应用程序,它与 1 个或多个 IoT 设备通信,然后网关可以连接到 Azure IoT Hub 等服务并与之通信。从那里,您可以将事件发送到 Azure IoT 中心,然后通过使用 Azure 流分析之类的东西在云中处理这些事件,然后发送到事件中心或服务总线队列,例如。然后一旦在队列中,您就可以编写一个 Azure 函数来触发以处理这些事件。

无法打开与 Azure 函数的持久 TCP/IP 连接。 Azure Functions 是无服务器计算,本质上是 Event-Driven,简称 运行。建议 Azure Functions 每次执行的最长持续时间少于 5 分钟。