在具有服务总线触发器的Azure函数中引用来自配置的主题和订阅名称 [英] Refer Topic and Subscription name from Configuration in an Azure Function with Service Bus Trigger

查看:67
本文介绍了在具有服务总线触发器的Azure函数中引用来自配置的主题和订阅名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个带有Service Bus主题触发器的Azure Service Bus。我的函数如下所示

[FunctionName("SbListener")]
        public static async Task Run(
            [ServiceBusTrigger("test-topic", "test-sub-1", Connection = "ServiceBus")]string message, 
            [Inject("Microsoft.EventStore.Functions", true)] IWebNotificationManagerFactory webNotificationManagerFactory,
            [Inject("Microsoft.EventStore.Functions", true)] ILogger logger)
        { ... }

我的Service Bus的配置在local.settings.json文件中。

"ConnectionStrings": {
    "ServiceBus": "Endpoint=sb://<my-sb>.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=<my-key>"
}

我正在寻找的是,我也希望引用配置文件中的主题名称,而不是将它们硬编码在ServiceBusTrigger中。问题是,如果我更改订阅名称,那么我将不得不重新部署函数代码(我希望不惜一切代价避免这种情况)。

推荐答案

Values中的主题和订阅放在本地.settings.json(门户中的应用程序设置)中,并使用应用程序设置绑定表达式引用它们--将应用程序设置名称用%括起来,勾选doc

[ServiceBusTrigger("%Topic%", "%Subscription%", Connection = "ServiceBus")]string message
此外,我建议您将ServiceBus连接字符串放在Values中,ConnectionStrings通常由框架使用,这些框架通常从配置文件的ConnectionStrings部分获取连接字符串,例如实体框架。请参阅doc

这篇关于在具有服务总线触发器的Azure函数中引用来自配置的主题和订阅名称的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆