我试图了解如何使用 azure 函数进行缩放。我们一直在测试一个在存储队列中生成 88 条消息的应用程序,这会触发我们的函数。该函数是用c#编写的。该函数下载一个文件,对其执行一些处理(它最终会将其发回,但出于测试目的我们还没有这样做)。该函数完成每个请求大约需要 30 秒(总共约 2500 秒的处理时间)。出于测试目的,我们将其循环 10 次。
我们的理想情况是,经过一些升温后,Azure 会自动扩展功能,以最方便的方式处理消息。使用某种考虑到启动时间等的算法。或者只是扩大到积压中的消息数量,并设置某种上限。
这是它应该如何工作的吗?我们从来没有超过 7 个“消费单位”。并且通常需要大约 45 分钟来处理消息队列。
其他几个关于可扩展性的问题……我们的函数是一个内存密集型操作,内存如何在函数的缩放实例之间“共享”?我问是因为我们看到了一些我们通常看不到的内存不足错误。我们已经为函数配置了最大内存(1536MB)。看到大约 2.5% 的操作因内存不足错误而失败
在此先感谢您,我们真的希望完成这项工作,因为它可以让我们将大量工作从 EC2 上的专用 Windows VM 转移到 Azure 函数上。