我有一个简单的 C# Azure 函数,使用计时器触发器每 X 分钟运行一次。无输出绑定(bind)。
在应用程序洞察中,该函数始终成功,结果代码为0:
[尽管多次调用了 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/