Azure functions中的超时时间取决于Functions的部署模式,如下表所示,在消耗计划上,functions 最大执行时间为10分钟,假设某个 blob 触发了functions执行视频分析,如果视频分析不能在10分钟内执行完成,则会被Functions框架强制关闭从而报 time out 错误。

参考的错误信息如下:

 [Error] Timeout value of 00:05:00 exceeded by function 'Functions.***Func' (Id: '32daf701-18de-467c-b36e-b0b7********'). Initiating cancellation.

 

 

官网关于函数应用超时持续时间的描述:

https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-scale?WT.mc_id=AZ-MVP-5003757

函数应用的超时持续时间通过 functionTimeout 项目文件中的 functionTimeout 属性进行定义。 下表显示特定计划的默认值和最大值(以分钟为单位):

计划 默认 Maximum1
消耗计划 5 10
高级计划 302 无限制
专用计划 302 无限制

1 不管函数应用超时设置如何,230 秒是 HTTP 触发的函数在响应请求时需要的最长时间。 这起因于 Azure 负载均衡器的默认空闲超时。 对于处理时间较长的情况,考虑使用 Durable Functions 异步模式或延迟实际工作并返回即时响应。
2 1.x 版 Functions 运行时的默认超时无限制。

 

关于Azure functions中的 functionTimeout配置host.json见下图,如果要设置为最大值,则可修改为-1

官网文档中对functionTimeout的描述:

https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-host-json?WT.mc_id=AZ-MVP-5003757

指示所有函数的超时持续时间。 它采用 timespan 字符串格式。

计划类型 默认值(分钟) 最大值(分钟)
消耗 5 10
高级1 30 -1(无限制)2
专用(应用服务) 30 -1(无限制)2

1 高级计划执行只能保证 60 分钟,但技术上不限时长。
2 值为 -1 表示无限制执行,但建议保留固定上限。

JSON
{
    "functionTimeout": "00:05:00"
}