lin*_*k64 1 azure azure-functions
我通过在 host.json 文件中指定以下内容,在 http 触发器 azure 函数 (v1) 上指定了超时
{
"functionTimeout": "00:10:00"
}
Run Code Online (Sandbox Code Playgroud)
我已使用 VS2017 部署到 Azure,并且可以确认此设置现在显示在 Azure 门户中。为了确定起见,我还重新启动了函数应用程序。
当我执行函数时,即使超时已设置为 10 分钟,它总是会在 4 分钟左右超时
我已经排除了其他来源发生的超时,因为当我在本地测试 Azure 函数时,它不会超时。
谁能解释为什么会发生这种情况?
这是预料之中的。Azure 站点上的 HTTP 请求有固定的超时设置。请参阅Azure Web App 超时设置 230 秒。在这方面,Azure Web应用程序和Http触发器Azure Function之间没有区别。
对于不发回任何数据的请求,有 230 秒(即略小于 4 分钟)的超时。之后,客户端会收到您看到的 500,即使实际上允许请求继续在服务器端进行。
至于如何绕过这个限制,如果不需要像httpresponse那样立即得到反馈,你可以使用队列触发器来完成你的工作。
否则,看看耐用功能。您可以发送 http 请求来启动协调器并获取启动成功的响应等等。工作正在协调器和活动函数中处理,我们不需要担心超时(因为它们也是非 http 触发器)。
| 归档时间: |
|
| 查看次数: |
2741 次 |
| 最近记录: |