Azure功能 - TCP持久性

时间:2018-02-16 14:14:20

标签: azure tcp azure-functions tcp-ip

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

我有一组物联网设备通过HTTP向Azure发送数据(为此,有一组Azure功能可自动扩展)

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

任何人都有一些关于如何实现这一点的想法?

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

先谢谢,欢呼。

2 个答案:

答案 0 :(得分:3)

如果您的设备仅通过持久性TCP / IP连接进行通信,那么您需要实施IoT网关。物联网网关基本上是一个应用程序,无论是在本地运行还是在云中运行,它与一个或多个物联网设备通信,然后网关可以连接到Azure IoT Hub等服务并与之通信。从那里,您可以将您的事件发送到Azure IoT Hub,然后使用Azure Stream Analytics等内容将这些事件处理到云中,然后发送到事件中心或服务总线队列。然后,在队列中,您可以编写一个Azure函数,以便在它们进入int时处理这些事件。

无法打开与Azure功能的持久TCP / IP连接。 Azure功能是无服务器计算,并且构建为事件驱动的本质和短期运行。建议Azure函数每次执行的最长持续时间不超过5分钟。

答案 1 :(得分:1)

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

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

像fanout.io这样的东西可能会有效,具体取决于协议。如果是MQTT,那么Azure IoT Hub可能会有意义。