0

我正在寻找一种优雅的方式来发送电子邮件通知,以防流分析作业检测到阈值已通过 - 与Santosh Balasubramanian在第9频道显示的大致相同。电子邮件通知与流分析

通过阈值后,将一条记录写入SQL表。这应该会触发电子邮件发送。

对于第二个,我想我可以在该表as explained here定义的移动服务“插入”脚本,当然,流分析作业不通过移动服务API ...

最佳我认为迄今为止的选项是使用Mobile Services Scheduled Job代替,它会每5分钟轮询一次表格,并在发现新记录时发送电子邮件。

有没有更好的方法?还是应该为流分析添加功能请求以将移动服务作为输出类型启用?

+0

为什么downvote? –

回答

0

一种可能实现,我已经做了哪些电子邮件你在一个异常检测的事件如下:

  1. 在的分析数据,写一个流查询检测异常所需阈值。
  2. 将流分析的输出发送到没有其他发件人的其他Azure事件中心,我们称之为异常检测事件中心。任何遇到此事件中心的消息都将是异常情况。
  3. 编写预订了异常检测中心的事件Hub接收器应用程序。当应用程序在订阅的事件中心中看到任何事件时,可以对此应用程序进行编程以采取行动(如发送电子邮件)。

有关如何订阅Azure事件中心的信息,请参阅本文档。 https://azure.microsoft.com/en-us/documentation/articles/service-bus-event-hubs-csharp-ephcs-getstarted/

您将要发送的上述说明文件中的以下部分的电子邮件:

foreach (EventData eventData in messages) 
    { 
     string data = Encoding.UTF8.GetString(eventData.GetBytes()); 

     Console.WriteLine(string.Format("Message received. Partition: '{0}', Data: '{1}'", 
      context.Lease.PartitionId, data)); 
     // SEND EMAIL HERE 
    } 
+1

我希望有一个解决方案,不需要我运行一个单独的应用程序,但我想这不是一个选项:o]选择这个答案的广泛性,都是好的。 –

1

我应该通过发送事件来解决这个问题,即通过一个新的事件集线器队列而不是SQL表创建一个电子邮件。 (因此,流式分析作业的输出是一个事件集线器队列。)从该队列中,您可以拥有创建邮件并发送它的事件处理器。我应该使用SendGrid发送邮件。

/DAG