0

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

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

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

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

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

如果有更好的方法来处理这个问题,我会很想听听他们的。任何有关如何在不影响缩放的情况下完成上述操作的指导都值得赞赏。

4

1 回答 1

0

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

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

于 2021-06-12T06:54:45.607 回答