如何在Azure IOT集线器设备数据上配置警报

时间:2019-09-20 13:29:28

标签: azure-iot-hub

我有一个IOT集线器,可以从连接的设备接收消息(avro格式)。我想基于消息中的特定值配置警报(在“物联网集线器监视”部分下),但是似乎警报没有提供根据设备发送日期配置规则的规定。

对此有何建议?这可能还是任何替代选择?

谢谢, 布帕尔

1 个答案:

答案 0 :(得分:0)

您可以执行Azure Stream Analytics作业,它将读取以Avro格式发送的消息,然后根据规则对其进行操作。请参考此文档,了解如何使用SQL Azure作为RuleEngine中的参考数据

http://learniotwithzain.com/2019/08/alert-engine-using-azure-stream-analytics-and-sql-azure-as-reference-data/

更多链接可以帮助您: Rules engine for Stream Analytics on Azure

https://docs.microsoft.com/en-us/azure/stream-analytics/stream-analytics-threshold-based-rules

另一种选择是也使用AzureFunctions,但这将需要您执行所有基础工作,而使用Azure Stream Analytics则非常简单。

Azure函数的示例:在这里,消息被拦截,然后在

之后传递给另一个eventhub
    [FunctionName("IotDeviceAnalytics")]

    public static async Task Run(
   [IoTHubTrigger("iothub-eventhubname", Connection = "IotHubConnectionString", 
    ConsumerGroup = "consumergroup")] EventData[] events,
    [EventHub("eventhubconnectionstring", Connection = 
    "EventHubConnectionString")]IAsyncCollector<string> outputEvents,
    ILogger log)
    {         

        foreach (EventData eventData in events)
        {
            //eventData would have your message

        }
    }

但是与Azure的所有组件一样,请检查成本和大小限制。使用SQL Azure作为规则引擎的参考数据会限制可以保存为参考数据的Rule的大小。