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的主要内容,如果未能解决你的问题,请参考以下文章
MySQL数据库innodb_rollback_on_timeout参数