Azure Blob 触发器 - 处理超时

问题描述 投票:0回答:1

我希望使用 Blob 触发器来长时间运行文件处理。

我知道消费计划中的 Http 触发器有一个处理超时持续时间,并且已经看到 5 分钟,但如果对 Blob 触发器施加超时,则无法找到任何文档。

azure-functions azure-blob-storage
1个回答
0
投票

您可以使用

functionTimeout
属性来安排 Blob 触发 Azure 函数的超时时间。

请参阅 MSDOC 了解更多有关

functionTimeout
的信息。

enter image description here

  • 消费计划中,默认超时时间为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 秒后超时。

enter image description here

  • 您可以根据您的要求安排
    functionTimeout

参考资料:

https://github.com/Azure/Azure-Functions/issues/1900

© www.soinside.com 2019 - 2024. All rights reserved.