0

Я ищу элегантный способ отправить уведомление по электронной почте в случае, если задание Stream Analytics обнаруживает, что был принят порог - примерно такой же, как показано на канале 9 Santosh Balasubramanian.Уведомления по электронной почте с Stream Analytics

При передаче порогового значения запись записывается в таблицу SQL. Это должно привести к отправке электронного письма.

На секунду я подумал, что могу мобильных служб «вставка» сценарий, определенный на этой таблице as explained here, но, конечно же, работа поток Analytics не проходит через API Mobile Services ...

Лучшие вариант, о котором я мог подумать, использует вместо этого Mobile Services Scheduled Job, который будет опросать таблицу каждые 5 минут или около того и отправить электронное письмо, если будут найдены новые записи.

Есть ли лучший способ? Или я должен добавить запрос функции для Stream Analytics, чтобы включить Mobile Services в качестве типа вывода?

+0

Почему downvote? –

ответ

0

Возможная реализация, что я сделал, какие письма вы в случае обнаружения аномалий заключается в следующем:

  1. В Стрит Analytics, написать запрос потока, который определяет нужную аномалия пороги.
  2. Отправьте выходные данные Stream Analytics другому концентратору событий Azure, у которого нет других отправителей, мы будем называть это Event Hub аномальным событием. Любое сообщение, которое когда-либо попадет на этот Event Hub, будет аномалией.
  3. Записать приложение-концентратор приемника событий, подписанное на концентратор обнаружения аномалий. Затем это приложение может быть запрограммировано на выполнение действий (например, отправка сообщений электронной почты), когда он видит какие-либо события в подписанном Event Hub.

Обратитесь к этой документации о том, как подписаться на концентратор Azure Event Hub. 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 для отправки почты.

/даг

Смежные вопросы