具有天蓝色功能的Azure iothub - 每个deviceId的Singleton

时间:2018-06-03 16:12:35

标签: azure azure-functions azure-iot-hub

我希望每个deviceId都有一个长期运行的azure函数,并希望使用Azure函数,因为我希望最小化我必须管理的基础结构。 有谁知道这种模式是否可行?

我已经检查过DurableFunctions,但我认为我不能将具有相同DeviceID的所有消息路由到函数?

如果每5分钟重启一次,那就没问题了。

当然,替代方案可能是使用Service Fabric Reliable actor(可能在服务网格可用时),但我想保持解决方案尽可能简单,因此我的重点是函数。

2 个答案:

答案 0 :(得分:0)

问题是 - 你有什么顾虑,你必须将具有相同DeviceID的消息路由到(相同的?)函数?

虽然与IoT Hub的开箱即用集成(我理解使用内置的EH端点和事件中心触发器)不支持这一点(因为设计的EH不支持过滤或主题等内容),还有其他选择:

  • 您甚至可以直接在函数中过滤每个
  • 您可以使用Event Grid +附加功能,它只会将消息从IoT Hub转发到Event Grid,然后您将让Event Grid根据特定参数路由消息
  • 您可以使用服务总线和主题功能

您能否详细说明每个deviceId 长时间运行的azure功能,以便我们更好地满足您的需求?

答案 1 :(得分:0)

谢谢大家, 在我的场景中,我需要呼叫一个外部服务。这个外部服务是一个有状态的服务,将计算每个设备的室内位置。外部服务通过udp暴露,我需要保持连接打开,每个设备一个,因此为什么我想要一个长时间运行的功能,来托管udp客户端。

感觉服务结构角色(可能带有服务网格)是最好的选择。

全部谢谢!