【Azure 应用服务】Azure Function HTTP 触发后, 230秒就超时。而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间?

本文介绍了如何解决Azure Function HTTP触发器230秒超时问题,以及对于需要长时间运行的任务,如何利用Durable Functions的异步模式来处理。通过修改host.json文件可以设置Function的最大执行时间,但HTTP触发器仍受限于230秒的限制。Durable Functions提供了一种解决方案,通过异步HTTPAPI模式,允许客户端轮询状态终结点以跟踪长时间运行的操作。文章还提供了C#和JavaScript的示例代码来创建Durable Functions。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述

灵雁小说网 https://www.xuao.info

Azure Function HTTP 触发后, 230秒就超时,而其他方式触发的Function, 执行5分钟后也超时,如何调整超时时间?

 

问题分析

查阅官方文档,对函数应用超时持续时间有详细介绍:最新的3.X版本的默认值根据Function计划的类型不同而不同,默认的最少为5分钟,最大30分钟。消耗计划的Function最大可调整为10分钟,而其他两种无限制。

但是,非常非常重要的一点是:如果Function是HTTP触发类型。它的响应时间最大最大就是230秒。 这是因为 Azure 负载均衡器的默认空闲超时就是230秒,作为PaaS服务的Azure Funciton (相同的还有App Service)无法改动。

2127802-20210805222541190-1152184488.png

(Source :  https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-scale#function-app-timeout-duration)

 

问题解决

1) 进入Function App的Azure 门户页面: Function App - Microsoft Azure 由世纪互联运营

2) 点击“App Service Editor “, 进入源代码查看页面,选择 host.json。 修改 functionTimeout 内容。如没有  functionTimeout,则根据以下格式自行添加。

2127802-20210805223106900-1950370183.png

 

 

3)如果是 HTTP触发的函数,而且其Function所运行的任务会处理很长时间,建议使用Function的另一种模式 【Durable Function 异步模式】, 或者通过代码的方式,自行解决延迟响应返回。

 

Durable Function 异步模式

异步 HTTP API 模式解决了使用外部客户端协调长时间运行的操作的状态时出现的问题。 实现此模式的一种常用方式是让 HTTP 终结点触发长时间运行的操作。 然后,将客户端重定向到某个状态终结点(Location),客户端可轮询该终结点(Location),以了解操作是何时完成的。

2127802-20210805224333738-597478800.png

 

Durable Functions 默认支持HTTP API 异步模式,可以简化甚至消除为了与长时间运行的函数执行进行交互而需要编写的代码。

  • C#代码可以参考:使用 C# 创建你的第一个持久函数(https://docs.microsoft.com/zh-cn/azure/azure-functions/durable/durable-functions-create-first-csharp?pivots=code-editor-vscode)
  • JavaScript代码参考:使用 JavaScript 创建你的第一个持久函数(https://docs.microsoft.com/zh-cn/azure/azure-functions/durable/quickstart-js-vscode)

启动实例后,该扩展会公开 Webhook HTTP API 用于查询业务流程协调程序函数的状态。

2127802-20210805224747025-1662300650.png

 

 

 

参考资料

函数应用超时持续时间: https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-scale#function-app-timeout-duration

Function host.json functionTimeout :  https://docs.microsoft.com/zh-cn/azure/azure-functions/functions-host-json#functiontimeout

Durable Function 异步 HTTP API 模式: https://docs.microsoft.com/zh-cn/azure/azure-functions/durable/durable-functions-overview?tabs=csharp#pattern-3-async-http-apis

 

【完】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值