我正在开发Azure IOTHUB用例。
多个称重传感器连续发送(每1/2秒)向IOTHUB发送数据。 (DeviceID,重量)。
包含用户数据的SQL表。
我想建立一个向设备所有者发送特定权重的电子邮件通知的系统。
实现这一目标的正确方法是什么。
我看过Logic应用程序是一个选项,但如何使用多个用户帐户和设备来实现它。
答案 0 :(得分:1)
我会使用IoT Hub路由将符合权重标准的消息推送到服务总线队列。从那里,您可以使用Azure功能和服务总线触发器。我假设用户帐户信息(电子邮件地址?)可通过SQL表中的查询获得。 Azure Functions具有SendGrid绑定,您可以使用该绑定发送电子邮件。
请注意,routing IoT Hub directly to a function位于待办事项上。
答案 1 :(得分:1)
基本上,当您的方案有两种解决方案时,每个设备都有自己的权重标准:
设备双向所需属性包含用于由真实设备向Azure IoT Hub发布非遥测警报消息的权重值。此警报消息可以在Azure IoT中心路由中路由到自定义端点,方式与Jim的答案(ServiceBus-> AzureFuction-> SendGrid)
第二种解决方案更复杂,通用,非常灵活,并且在设备端或设备双胞胎上不需要任何特殊编码。它基于具有Azure流分析(ASA)作业的标准遥测流管道,用于分析事件并生成通过SendGrid输出到Azure功能的通知消息。 ASA作业使用SQL数据库生成和刷新的blob文件中的参考数据(用户数据,权重等)。 以下屏幕截图显示了此解决方案:
答案 2 :(得分:0)
我想提出一种我认为也是正确的方法(我测试了此流程):
以下是文档的链接:
Connect to SQL Server or Azure SQL Database from Azure Logic Apps
Send emails and manage mailing lists in SendGrid by using Azure Logic Apps