Azure功能消费计划中使用Azure应用程序配置的指导



我正在使用Azure功能消耗计划来监控服务总线主题订阅并处理来自供应商的webhook消息。我正在Azure应用程序配置中存储我的设置,但由于应用程序配置被视为外部文件,因此函数缩放器无法读取这些值。因此,使用主题名称作为配置变量是不可取的。

public async Task Run(
[ServiceBusTrigger("Common:VendorProcessingSBTopicName", "provider-service", Connection = "Common:VendorProcessingSBTopic")] string msg)

这将在运行时产生以下消息。

功能缩放控制器可能无法正确缩放以下功能,因为在外部启动类中修改了一些配置值

是的,我可以将键值添加到功能配置中,但这些值在使用相同值并希望集中存储的功能应用程序之间共享。由于每个订阅的主题可能包含数千条消息,因此正确扩展很重要。这些功能每月处理800多万封电子邮件和1900万条短信的回调事件。

如果有更好的方法来处理这件事,我很有兴趣听取他们的意见。关于如何在不影响缩放的情况下完成上述操作的任何指导都是值得赞赏的。

以下是如何从Azure应用程序配置中获取存储队列名称并将其用于QueueTrigger的示例。您应该能够为ServiceBusTrigger执行类似的操作。它使用应用程序设置绑定表达式。但是,请注意,由于Azure功能的限制,消费计划中不支持此功能。

https://github.com/Azure/AppConfiguration/blob/main/examples/DotNetCore/AzureFunction/FunctionApp/ReadQueuedMessage.cs

默认情况下,服务总线触发功能在local.settings.json中查找AzureWebJobsServiceBus连接名称

这意味着,如果在本地设置中设置了值,则不必定义connection属性。

对于远程部署,使用可以从azure应用程序配置中获取价值/机密的管道&设置特定应用程序服务/功能的配置。

最新更新