我希望使用 Blob 触发器来长时间运行文件处理。
我知道消费计划中的 Http 触发器有一个处理超时持续时间,并且已经看到 5 分钟,但如果对 Blob 触发器施加超时,则无法找到任何文档。
您可以使用
functionTimeout
属性来安排 Blob 触发 Azure 函数的超时时间。
请参阅 MSDOC 了解更多有关
functionTimeout
的信息。
消费计划中,默认超时时间为5分钟,最大超时时间为10分钟。
对于超过 10 分钟的长时间运行过程,您可以使用高级版或应用程序服务计划。
在
host.json中设置functionTimeout
,如下图:
{
"functionTimeout":"01:00:00"
}
我创建了一个 Blob 触发器 Azure 函数:
[FunctionName("Function")]
public void Run([BlobTrigger("myqueue-items/{name}", Connection = "demo")]Stream myBlob, string name, ILogger log)
{
log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
System.Threading.Thread.Sleep(30000);
}
System.Threading.Thread.Sleep(30000);
让函数休眠30秒。主机.json:
我已经安排了
functionTimeout
20 秒。
{
"version": "2.0",
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
}
},
"functionTimeout": "00:00:20"
}
我可以看到该函数在 20 秒后超时。
functionTimeout
。参考资料: