自定义存储轮询是否与消费计划 Azure Functions 相关?

Is custom storage polling relevant to consumption plan Azure Functions?

当 Azure Functions 在消费计划下托管时,存储队列轮询的概念如何应用?

我了解了使用经典托管 WebJob 函数进行轮询的原理,并且我了解可以覆盖 1 分钟的最大轮询间隔。但是,在消费计划托管的情况下,没有应用程序级内存驻留进程,因此我假设 Azure 内部通过我无法控制的其他触发器启动 FunctionApp。

这个问题的动机是我试图了解当 Azure 托管的 WebApp 将消息添加到存储队列时典型的 E2E 函数调用传播延迟。在我的例子中,WebApp、StorageQueue 和预编译函数 DLL 将 运行 在同一个 Azure 区域中。

我需要将 Azure 函数调用延迟限制在 10 秒以下,平均 <3 秒。

不幸的是,这在当前轮询模型的消费计划中是不可能的,因为我们每 10 秒轮询一次您的触发资源以确定是否有新事件需要函数实例 loaded/started。

如果您的函数应用运行得足够频繁以至于它总是有活动的实例(例如,每 5 分钟一个新的队列消息),您可以获得您想要的调用延迟,因为实例本身会处理轮询。

最坏的情况(没有函数实例 运行)是 ~10s 轮询 + ~5s 实例启动时间来处理新事件。