问题描述

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

问题分析

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

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

(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,则根据以下格式自行添加。

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

Durable Function 异步模式

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

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

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

参考资料

函数应用超时持续时间: 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

【完】

最新文章

  1. C语言中extern的用法
  2. 作业七:团队项目——Alpha版本冲刺阶段-12
  3. ANDROID版本号和版本名称的重要性介绍
  4. 利用Arduino快速制作Teensy BadUSB
  5. SpringMVC 通过post接收form参数或者json参数
  6. PHP错误处理及异常处理笔记
  7. 基于条件随机场(CRF)的命名实体识别
  8. 在SQL中修改数据库名称
  9. 分享波面经【2年经验】【linux c++】
  10. spring cloud 的自我保护机制
  11. RabbitMQ入门-队列
  12. 系统更新报错--NO_PUBKEY
  13. linux resin 安装 配置 相关
  14. Flume参数小结
  15. PHP常用类------生成验证码类Code
  16. 文本分类-TensorRT优化结果对比图
  17. Zabbix监控Zookeeper健康状况
  18. sourceforge
  19. 100 Most Popular Machine Learning Video Talks
  20. 我对NHibernate的感受(3):有些尴尬的集合支持

热门文章

  1. 基于SpringBoot 、AOP与自定义注解转义字典值
  2. Unity MVC思想
  3. zabbix_manage的使用
  4. 16、如何将安装在chrome上的插件(扩展程序)打包成".crx"文件
  5. 22、部署drdb
  6. sonarqube 8.9版本配置发信邮箱
  7. MinIO关闭公开桶的列表展示(S3 browser)
  8. Java:TreeMap中LinkedHashMap和Map中HashMap的区别
  9. 资源:mysql下载路径
  10. python字典和列表使用