我有一个Azure函数,我将逻辑包装在try catch块中。 我可以将异常记录到Azure,但我想保存,然后将异常的详细信息发送到电子邮件地址。我看到我可以使用Elmah.io,但我必须按月付费。
Azure是否有简单的方法来记录数据,然后向我发送电子邮件?
像这样的东西
catch (Exception ex)
{
log.Info($"Points Event Error: " + ex.Message);
// send me email with details
}
答案 0 :(得分:2)
最Azure功能的方法是使用Azure Functions SendGrid ouput binding。
您可以按照该文章中的示例进行操作,但不要使用out
参数而使用ICollector
/ IAsyncCollector
,因为您只需要有条件地发送电子邮件。
我相信Send Grid有一个免费套餐可用于低使用率的场景。
答案 1 :(得分:1)
您可以考虑利用Functions' Application Insights integration,而不是希望利用SendGrid直接从您的函数向您发送有关例外的电子邮件。除了能够在Application Insights中set Alerts based on Exceptions之外,这还将为您提供额外的好处(性能跟踪,事件历史记录,跟踪日志记录)。这也意味着您的监控/警报不会融入您的功能中的业务逻辑中。
Application Insights有一个免费套餐,应该足以满足大多数用例。