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