我有在应用程序服务计划上运行的天蓝色功能。 主机文件是这样的:
{
"version": "2.0",
"functionTimeout": "02:00:00",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true
}
}
},
"extensions": {
"queues": {
"batchSize": 32
},
"serviceBus": {
"maxAutoLockRenewalDuration": "02:00:00",
"maxConcurrentCalls": 100
}
}
}
我的代码将运行 10 分钟更长的时间,但似乎在 10 分钟后停止。
如果我监视功能日志记录,我可以看到作业已启动,10 分钟后服务总线给出第二个交付计数。并且功能再次启动。
此队列的服务总线设置为:
锁定时间:PT5M
最大大小(兆字节):5,120
最大消息大小(以千字节为单位):256
需要重复检测: false
需要会话: false
默认消息生存时间:P10675199DT2H48M5.477S
消息过期时出现死字: false
重复检测历史时间窗口:PT10M
最大送货数量:10
我正在使用点网函数。 该函数有一个 try catch,因此它不会抛出错误并始终完成。
我尝试将函数超时缩短到 3 分钟,但日志显示超时。 所以我不怀疑
functionTimeout
设置不正确
虽然您没有在问题中指定它,但似乎您正在使用
Consumption Plan
应用服务来托管您的Azure Functions。
根据文档此处,在
timeout
上执行的任何函数的最长 Consumption Plan
为 10 分钟。
增加此值的唯一替代方法是将您的功能移至
Premium
或 Dedicated
计划。
作为旁注 - 尽管这似乎不是你的情况 - 无论你执行函数的计划如何,如果你使用
HttpTrigger
,则最大执行时间限制为 230秒。