Azure Functions并发和扩展行为

问题描述

SO上有一堆Azure函数并发问题,但没有一个是专门解决的。

我全神贯注于HTTP触发的Function应用程序的扩展方案(如果重要的话,运行时为Node.js)。我来自AWS Lambda世界,其中新Lambda实例中的每个并发调用results

如果在仍在处理请求的同时再次调用函数,则会分配另一个实例,这会增加函数的并发性。

让我对Azure Function应用感到困惑的是他们的documentation中的这篇文章

单个功能的应用最多只能扩展到200个实例。但是,单个实例一次可以处理多个消息或请求,因此并发执行的次数没有设置限制。

在哪种情况下,单个FA实例一次将处理多个请求?

解决方法

此行可能指向information以下:

功能应用程序中的host.json文件允许配置 主机运行时和触发行为。除了批处理行为, 您可以管理多个触发器的并发性。经常调整 这些选项中的值可以帮助每个实例适当扩展 满足调用功能的需求。

host.json文件中的设置适用于 单个功能实例中的应用程序。例如,如果您有 具有两个HTTP函数和maxConcurrentRequests的函数应用 请求设置为25,则对任一HTTP触发器的请求都将计数 对共享的25个并发请求。当该功能的应用程序是 扩展到10个实例,这两个功能有效地允许250 并发请求(10个实例*每个25个并发请求 实例)。

其他主机配置选项可在host.json中找到 configuration article