我们有一个简单的Azure函数来进行DocumentDB查询。这似乎是我们第一次称之为漫长的等待,然后连续的通话非常快。
例如,我刚刚打开我们的应用程序,第一个函数调用需要10760毫秒,任何最终用户都明显可以注意到。在此之后,所有函数调用大约需要100毫秒才能处理,几乎察觉不到。
好像有一些"醒来"在Azure功能中循环。是否有某种方法可以最大限度地减少这种情况,或者更好地将其记录在某处,以便我们能够理解这里真正发生了什么?答案 0 :(得分:11)
在消费计划上运行的功能应用程序确实有一个空闲时间,之后它们会有效地进入休眠状态。下一次调用需要"唤醒他们"正如你所观察到的那样,人们在评论中提到过。
至于为什么会发生这种情况,以便Microsoft可以在多租户环境中最佳地分配计算工作负载,同时确保您只在实际功能实现的时间内向第二个计费做工作。这是无服务器的美丽。
对于不接受这种行为的工作负载,您可以考虑从消费计划转移到实际的App Service计划。或者,您可以实现一个定时器触发的功能,例如每分钟关闭一次,并将其用作"保持活动状态"通过ping你不想睡觉的功能的机制。