c# - Application Insights 中的 Azure 函数 TimerTrigger 结果代码始终成功

标签 c# azure azure-functions azure-application-insights

我有一个简单的 C# Azure 函数,使用计时器触发器每 X 分钟运行一次。无输出绑定(bind)。

在应用程序洞察中,该函数始终成功结果代码为0:

Here

[尽管多次调用了 TraceWriter 的 .Error()。]

我想在应用程序洞察中获得正确的最终状态,但我不知道该怎么做。文档从未谈论过这一点:-/ 有人可以指导我如何用 C# 做到这一点吗?

我尝试设置Environment.ExiCode但结果相同。 我还尝试将返回类型更改为 int,但随后不再调用该函数。我想是因为它是通往 declare an output binding 的路对于 azure 函数本身。

这是我的功能:

[FunctionName("SendToOfflineArchive")]
public static void Run([TimerTrigger("%TimerInterval%")]TimerInfo myTimer, TraceWriter log)
{
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}");

    // do stuff

    int nbErrors = 7;
    //return nbErrors;
}

如果结果代码不是 0,那就太好了...比如错误数(整数)。

最佳答案

如果 Azure Function 抛出异常,则被视为失败(AF 和 AI 之间存在嵌入式集成,它认为成功执行的函数是“成功”)。如果启用了日志转发,则将错误记录为跟踪应该会在 Application Insights 中生成相应的跟踪消息。

关于c# - Application Insights 中的 Azure 函数 TimerTrigger 结果代码始终成功,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54460765/

相关文章:

c# - 我可以更改 Windows Azure 网站上的区域设置吗?

c# - WPF C# 图像源

c# - 使用 ADAL v3 使用 ClientID 对 Dynamics 365 进行身份验证

azure - COSMOS DB 触发器 Azure 函数更改源错误

azure - 使用App Model V2访问日历

azure - 使用发件人和收件人的公司电子邮件地址通过我公司 Azure 订阅的 Azure Functions 发送电子邮件

Azure Functions 计时器触发器线程安全

c# - System.CommandLine命令自定义验证器: how to search

c# - 如果从 catch block 中抛出异常,什么时候最终运行?

azure - 如何停止从 Azure Functions 中的特定函数发送遥测数据?