消费计划上的Azure功能超时

时间:2018-12-17 22:41:04

标签: azure azure-functions

通过在host.json文件中指定以下内容,我已经在http触发azure函数(v1)上指定了超时时间

{
  "functionTimeout": "00:10:00"
}

我已使用VS2017部署到Azure,并且可以确认此设置现在出现在Azure门户中。为了确保我也重新启动了功能应用程序。

执行函数时,即使超时设置为10分钟,它总是会在4分钟左右超时

我已经排除了其他来源的超时,因为当我在本地测试Azure函数时,它不会超时。

有人能说明为什么会这样吗?

2 个答案:

答案 0 :(得分:1)

这是预期的。 Http请求在Azure站点上具有固定的超时设置。参见Azure Web App timeout setting of 230s。在这方面,Azure Web应用程序与Http触发器Azure Function之间没有区别。

  

对于未发送任何数据的请求,存在230秒(即不到4分钟)的超时。之后,即使实际上请求被允许继续服务器端,客户端也会获得您看到的500。

关于如何绕过此限制,如果不需要像httpresponse这样的即时反馈,则可以使用queue trigger来完成工作。

否则,请查看Durable function。您可以发送http请求以启动业务流程程序并获得成功启动的响应,依此类推。这项工作正在协调器和活动功能中进行处理,我们不必担心超时(因为它们也是非http触发器)。

答案 1 :(得分:0)

<块引用>

Microsoft 的 Azure Functions 团队添加了一个配置选项,可让 Azure Functions 应用程序增加超时。

完整答案@Build5Nines.com Azure Functions: Extend Execution Timeout Past 5 Minutes

简而言之,编辑host.json并设置functionTimeout:

// Set functionTimeout to 10 minutes
{
    "functionTimeout": "00:10:00"
}