Я хочу получать уведомления, когда электронные письма перемещаются в очередь недоставленных писем из очереди в служебной шине Azure. Как это сделать с помощью функционального приложения, сценария оболочки или оболочки Power?
Пример: Допустим, прямо сейчас у меня есть 5 элементов в очереди недоставленных писем, так что, возможно, что-то выполняется каждый час, если добавляется новый элемент, это должно вызывать уведомление по электронной почте.?
Заранее спасибо!!
Я пробовал использовать Power Shell и Shell Scripting, получая ошибки.
Я бы рекомендовал Azure Monitor с уведомлениями.
В функции Azure есть триггер под названием «Триггер служебной шины», который также будет работать для сообщений с недоставленными буквами, как показано ниже:
Здесь вам просто нужно добавить queuname/$DeadLetterQueue
в триггер служебной шины:
using Azure.Messaging.ServiceBus;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace FunctionApp204
{
public class Function1
{
private readonly ILogger<Function1> ri_lg;
public Function1(ILogger<Function1> logger)
{
ri_lg = logger;
}
[Function(nameof(Function1))]
public async Task Run(
[ServiceBusTrigger("rith/$DeadLetterQueue", Connection = "rith")]
ServiceBusReceivedMessage message,
ServiceBusMessageActions messageActions)
{
ri_lg.LogInformation("Message ID: {id}", message.MessageId);
ri_lg.LogInformation("Message Body: {body}", message.Body);
ri_lg.LogInformation("Message Content-Type: {contentType}", message.ContentType);
await messageActions.CompleteMessageAsync(message);
}
}
}
После того, как Дэд написал сообщение:
функция срабатывает:
Для отправки электронной почты вы можете использовать SendGrid / SMTP .
Спасибо, РитвикБоджа! Я попробовал это, и все работает нормально. Но фактическое требование — сделать это с помощью сценария Power Shell. Я пробую это сейчас.
Попробуйте открыть ветку и рассказать о том, что вы пробовали в PowerShell, и о проблеме, с которой столкнулись. Как вы уже спрашивали в случае с приложением-функцией, это пример приложения-функции.
Можете ли вы предоставить то, что вы пробовали?