Azure 函数实例和缩放

Azure function instance and scaling

通过在其中包含单个 HTTP 触发器函数的消费计划下创建 Azure 函数应用服务,我可以控制为传入请求提供服务的 Azure 函数应用服务实例数吗?如果是,如何控制应用服务实例?

如果不是,Azure 缩放或实例化逻辑背后的基本原理是什么?如果我有像 cosmos db 连接这样的单例静态资源,如何在 azure 函数应用程序服务实例之间共享它?以提高性能。

您无法确定 Azure 缩放控制器将如何在消费或高级计划中扩展您的 HTTP-triggered 功能的其他实例。比例控制器将对何时应提供您的函数的其他实例做出最佳猜测。

另请注意,如果您从冷启动到“Reddit 上的每个人现在都在请求我的功能”,Azure 缩放控制器将被限制为每秒最多添加一个 HTTP 触发功能的新实例.随着 HTTP 队列因突然的流量激增而加深,我已经 运行 艰难地进入了这个。

此外,当您的函数横向扩展时,您无法控制 Consumption 和 Premium 计划,以控制新实例将添加到您所在区域中的哪个 VM。 Azure Functions 中的单例变量将仅由同一 VM 中的函数实例共享。相应地计划。解决此行为的唯一方法是在应用服务计划上托管你的 Azure 函数。在这种情况下,您知道您的 Azure 函数将 运行 运行在相同的 N 个 VM 实例上,其中 N 是 scaled-out Web 应用程序实例的数量。