我试图更好地了解 azure 函数缩放在消费计划下是如何工作的。
我一直在测试一个在存储队列中插入 1000 条消息的应用程序,这会触发一个用 C# 编写的 azure 函数。
该函数下载一个文件并对其执行一些处理。完成每个请求大约需要 20 秒。
在消费计划上运行该函数,我发现完全排空队列需要 10 分钟以上的时间。将每个函数实例配置为一次仅处理一个队列消息,我原本希望为 1000 条消息启动 1000 个实例,但情况似乎并非如此。
使用 App Insights 上的实时指标流,我从未见过运行实例的数量超过 30。
这种吞吐量是预期的吗?作为参考,这是我在函数的 host.json 中的队列配置:
"queues": {
"maxPollingInterval": 2000,
"visibilityTimeout": "00:00:30",
"batchSize": 1,
"maxDequeueCount": 5,
"newBatchThreshold": 1
}
Run Code Online (Sandbox Code Playgroud)
任何可以提供有关缩放功能的信息,或在此处实现更好吞吐量的建议,都将不胜感激。