Azure.Messaging.ServiceBus下Function触发器无法配置TransportType如何解决
解决方案
无需修改触发器代码,通过新增配置项即可实现,分为本地调试和云端部署两种场景:
- 本地调试场景:
打开项目的local.settings.json文件,在Values节点下新增格式为{连接字符串名}__TransportType的配置项,值设置为AmqpWebSockets即可,示例如下:
{ "IsEncrypted": false, "Values": { // 原有配置保持不变 "somebus_SERVICEBUS": "你的Azure Service Bus连接字符串", // 新增如下配置项,注意键名中间是两个下划线 "somebus_SERVICEBUS__TransportType": "AmqpWebSockets" } }
- 云端部署场景:
进入Azure门户中对应Function App的「配置」页面,在「应用程序设置」下新增和本地配置键名、值完全一致的配置项,保存后重启应用即可生效。
配置原理
基于Azure.Messaging.ServiceBus的新版Service Bus触发器扩展(v5.x及以上版本)原生支持通过{连接字符串前缀}__{属性名}的格式注入ServiceBusClientOptions的所有公开属性,同时兼容进程内和隔离工作者模型的Azure Function。除TransportType外,重试策略、超时时间等配置都可以通过该方式自定义,无需降级依赖包,也不需要修改业务代码。
内容的提问来源于stack exchange,提问作者Stefan
相关产品推荐
相关产品推荐

