Azure Function Timeout on Consumption Plan

Posted

技术标签:

【中文标题】Azure Function Timeout on Consumption Plan【英文标题】: 【发布时间】:2019-05-18 08:09:41 【问题描述】:

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


  "functionTimeout": "00:10:00"

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

当我执行我的函数时,它总是超时或大约 4 分钟,即使超时已设置为 10 分钟

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

谁能解释为什么会这样?

【问题讨论】:

你说的是http触发器吗? 是的,我会澄清我的问题 【参考方案1】:

这是预期的。 Http 请求在 Azure 站点上具有固定的超时设置。见Azure Web App timeout setting of 230s。在这方面,Azure Web app 和 Http 触发 Azure Function 没有区别。

对于未发回任何数据的请求,有 230 秒(即略少于 4 分钟)超时。之后,客户端得到你看到的 500,即使实际上请求被允许继续服务器端。

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

否则,请查看Durable function。您可以发送一个 http 请求来启动一个协调器并获得一个成功启动的响应等等。工作正在编排器和活动函数中处理,我们无需担心超时(因为它们也是非 http 触发器)。

【讨论】:

感谢持久功能的链接! @link64 不客气。你还有其他困惑吗?如果不是,您介意接受答案以结束您的问题吗?【参考方案2】:

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"

【讨论】:

以上是关于Azure Function Timeout on Consumption Plan的主要内容,如果未能解决你的问题,请参考以下文章

JS各种语法

Transclude 未注入链接功能

MySQL数据库innodb_rollback_on_timeout参数

[原创]MySQL innodb_rollback_on_timeout参数对锁的影响

Azure Web 作业总是失败

NextJS / vercel - 504 错误'FUNCTION_INVOCATION_TIMEOUT'