dependency-injection - 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 的信息:
- https://mcguirev10.com/2018/04/03/service-locator-azure-functions-v2.html
- https://blog.wille-zone.de/post/azure-functions-proper-dependency-injection/
- https://github.com/introtocomputerscience/azure-function-autofac-dependency-injection
所有示例都使用 HTTP 触发器运行,我假设 IIS 主机已启动并正在运行并且包含服务。但是使用 ServiceBus 触发器,我无法让它工作。我已经实现了上面提到的解决方案,还有一些解决方案,但都遇到了同样的问题。代码有效,但服务是为消息/触发器创建的。
有谁设法做到这一点,或者不可能做到这一点?
注意(更新):我得到了一些我还没有时间验证的更多信息,但我一直在为我的 Azure Functions 使用消费计划。您可能需要一个应用服务计划(使用消费,因为该价格模型更方便)。如果有人对此了解更多?我将在本周晚些时候对此进行调查。
解决方案
我只是想确认现在使用应用服务计划而不是消费计划可以正常工作。不同之处在于“冷启动”而不是“热”主机。
我想所有不同的 DI 实现都应该可以正常工作。我一直在使用以下内容:https ://github.com/MV10/Azure.FunctionsV2.Service.Locator
推荐阅读
- javascript - JS过滤日期
- swift - 无法使用 AVVideoCompositionCoreAnimationTool 在视频中显示动画 CALayer
- javascript - 选中复选框时触发功能,但未选中时清除
- c# - 在c#中的文本框上显示单元格值
- wpf - 半透明颜色的动画效果很奇怪
- java - 有没有办法在 Java 语言(非本机)JVM 代理中启用“本机方法前缀”功能?
- python - Python shell 在 urlopen() 上重新启动
- c# - .Net Api 用于创建带有图表的 Word 文档
- javascript - 入门问题,在动画上用文本覆盖 Div
- python - 带有 sklearn 的 ML:KNeighborRegressor 拟合函数卡在大数据库上