首页 > 解决方案 > Azure Function ServiceBus 触发器依赖注入

问题描述

我一直在尝试为 Azure Functions 实现 DI,其中函数由 ServiceBus 触发(在本例中为主题/订阅):

[Singleton]
[FunctionName("Alert")]
public static async Task Alert([ServiceBusTrigger(Topic.Alert, Subscription.PowerBi, Connection = "servicebusconnectionstring")] Message message, [Inject]IPowerBiService powerBiService, [Inject]IQueueService queueService)

我在以下站点上阅读了有关 Azure Functions 和 DI 的信息:

所有示例都使用 HTTP 触发器运行,我假设 IIS 主机已启动并正在运行并且包含服务。但是使用 ServiceBus 触发器,我无法让它工作。我已经实现了上面提到的解决方案,还有一些解决方案,但都遇到了同样的问题。代码有效,但服务是为消息/触发器创建的。

有谁设法做到这一点,或者不可能做到这一点?

注意(更新):我得到了一些我还没有时间验证的更多信息,但我一直在为我的 Azure Functions 使用消费计划。您可能需要一个应用服务计划(使用消费,因为该价格模型更方便)。如果有人对此了解更多?我将在本周晚些时候对此进行调查。

标签: dependency-injectionazure-functionsazureservicebus

解决方案


我只是想确认现在使用应用服务计划而不是消费计划可以正常工作。不同之处在于“冷启动”而不是“热”主机。

我想所有不同的 DI 实现都应该可以正常工作。我一直在使用以下内容:https ://github.com/MV10/Azure.FunctionsV2.Service.Locator


推荐阅读