使用服务总线触发器在 Azure 函数中参考配置中的主题和订阅名称

2024-06-19

我有一个带有服务总线主题触发器的 Azure 服务总线。我的功能看起来像这样

[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)
        { ... }

我的服务总线的配置位于 local.settings.json 文件中。

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

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


将主题和订阅放入Values在 local.settings.json(门户中的应用程序设置)中,并使用应用程序设置绑定表达式引用它们 - 将应用程序设置名称包装为%, 检查doc https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-expressions-patterns#binding-expressions---app-settings.

[ServiceBusTrigger("%Topic%", "%Subscription%", Connection = "ServiceBus")]string message

此外,我建议你把ServiceBus连接字符串在Values还有,ConnectionStrings由通常从配置文件的 ConnectionStrings 部分获取连接字符串的框架使用,例如实体框架。请参阅doc https://learn.microsoft.com/en-us/azure/azure-functions/functions-run-local#local-settings-file.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用服务总线触发器在 Azure 函数中参考配置中的主题和订阅名称 的相关文章

随机推荐