Node.js Azure Functions如何设置Azure Service Bus错误重试间隔
配置报错及重试设置解决方案
报错原因
Property retryOptions is not allowed报错是由于Azure Functions Service Bus扩展版本迭代后,配置结构发生了变更:旧版本的根节点retryOptions参数已被废弃,新版扩展(v5.x及以上)不再识别该配置项。
正确配置方法
全局重试配置(所有Service Bus触发函数共用)
在host.json文件中按如下结构配置,参数可根据实际需求调整:
{ "version": "2.0", "extensions": { "serviceBus": { "retry": { "mode": "exponential", "maxRetryCount": 5, "minimumBackoff": "00:00:10", "maximumBackoff": "00:03:00" } } } }
mode可选值为exponential(指数退避)、fixed(固定间隔)minimumBackoff为最小重试间隔,可替换为你需要的时长,解决当前每秒重试的问题
单函数重试配置(仅对指定触发函数生效)
如果不需要全局生效,可在对应函数的function.json文件中添加重试配置:
{ "bindings": [ { "name": "sbMsg", "type": "serviceBusTrigger", "direction": "in", "queueName": "你的队列名", "connection": "ServiceBus连接字符串配置名", "retry": { "strategy": "exponentialBackoff", "maxRetryCount": 3, "minimumInterval": "00:00:10", "maximumInterval": "00:01:00" } } ] }
生效及注意事项
- 配置修改后需要重启Azure Functions运行时,或重新发布函数后才会生效
- 若使用固定间隔重试,将
mode改为fixed、strategy改为fixedDelay,直接指定interval参数即可 - 重试达到最大次数后,消息会自动进入死信队列,可根据业务需求配置死信消息的处理逻辑
内容的提问来源于stack exchange,提问作者Henrique É.
相关产品推荐
相关产品推荐

