我有一个IOT集线器,可以从连接的设备接收消息(avro格式)。我想基于消息中的特定值配置警报(在“物联网集线器监视”部分下),但是似乎警报没有提供根据设备发送日期配置规则的规定。
对此有何建议?这可能还是任何替代选择?
谢谢, 布帕尔
答案 0 :(得分:0)
您可以执行Azure Stream Analytics作业,它将读取以Avro格式发送的消息,然后根据规则对其进行操作。请参考此文档,了解如何使用SQL Azure作为RuleEngine中的参考数据
更多链接可以帮助您: 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的大小。