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
属性进行定义。 下表显示特定计划的默认值和最大值(以分钟为单位):
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
表示无限制执行,但建议保留固定上限。
{
"functionTimeout": "00:05:00"
}