You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Function未执行却触发超时异常的排查求助

Azure Functions 超时未启动问题排查方案

问题场景

我有一个Azure Function应用,其中包含如下函数:

[Microsoft.Azure.WebJobs.Singleton]
[Function(nameof(FunctionDataUsageParseFromBlobFile))]
public async Task Run([TimerTrigger("0 */1 * * * *")] MyInfo myTimer)
{
    _logger.LogInformation($"{functionName} function processed: {DateTime.UtcNow} UTC.");
}

该函数由TimerTrigger每分钟触发一次,正常运行时会记录包含UTC时间的启动日志。但有时会出现执行超时异常(应用内其他函数也存在该问题,此函数仅作示例),异常信息为:

Timeout value of 00:09:59 exceeded by function 'Functions.FunctionDataUsageParseFromBlobFile' (Id: '91921e6e-8ddf-48c0-b846-6c69dd61a369'). Initiating cancellation.

该次调用的traces中仅存在3条日志:2条为执行开始/结束的技术性日志,1条为超时日志,函数首行日志未被记录,说明函数实际并未启动。


可能的原因

  • Singleton锁阻塞:函数标记了[Singleton]特性,若前一次函数实例未正常释放锁(比如异常退出、进程崩溃),新触发的请求会一直等待锁释放,直到触发超时。TimerTrigger每分钟触发一次,锁未释放的话后续请求都会堵在获取锁的阶段,根本进不了函数代码。
  • 冷启动或资源不足:如果用的是消耗计划,应用长时间闲置会休眠,触发时需要冷启动。若冷启动过程耗时超过默认10分钟的超时阈值,就会出现这种超时且代码未执行的情况。另外,当前服务计划的CPU、内存不够,进程调度不过来,也会导致函数迟迟无法启动。
  • 触发器/宿主初始化异常:TimerTrigger初始化过程出错,或者Function宿主环境在准备执行函数时发生未捕获的异常,导致函数代码还没开始运行就卡壳,最终超时。

定位问题的步骤

  1. 检查Singleton锁状态:打开Function默认使用的存储账户,进入azure-webjobs-hosts容器的locks文件夹,查看是否有对应函数的锁文件。如果锁文件存在且更新时间很早,说明锁没正常释放,手动删除后测试是否恢复正常。
  2. 查看宿主级日志:启用Function的宿主日志,这些日志会记录触发器初始化、锁获取、函数调度等阶段的细节,能直接看到函数是不是卡在了拿锁或者初始化步骤。
  3. 监控资源指标:在Azure门户查看Function应用的CPU、内存、磁盘IO使用率,如果超时时段资源跑满,那就是资源不足导致的调度延迟。
  4. 临时移除Singleton测试:先去掉[Singleton]特性,观察是否还会出现超时未启动的情况,以此验证是不是锁的问题。

可查看详细错误的位置

  • Application Insights 宿主日志:在Application Insights的日志查询中,筛选traces表的category == "Host.Triggers.Timer"或category == "Host.Locks",能拿到触发器和锁相关的详细日志。
  • 门户日志流:进入Function应用的“日志流”页面,选择“宿主日志”选项,实时查看宿主层面的初始化、调度日志,能捕获到函数代码执行前的异常。
  • Kudu站点日志文件:访问https://<你的应用名>.scm.azurewebsites.net进入Kudu站点,打开LogFiles\Application\Functions\Host文件夹,里面的宿主日志文件有更详细的初始化和错误信息。
  • 存储账户日志:检查Function使用的存储账户的操作日志,看看队列、Blob操作有没有异常,毕竟Singleton锁是靠存储账户实现的。

内容的提问来源于stack exchange,提问作者Oleg Sh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 20:16:08