由服务总线队列触发的应用程序服务计划中的Azure函数有时无法唤醒

rqqzpn5f  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(113)

我们有一个由服务总线队列触发的函数应用程序。功能应用程序使用基本应用程序服务计划,并关闭了Always on
函数运行一段时间后,作业主机停止,此时问题开始。
当一个新的消息排队进入服务总线队列时,该函数有时会唤醒并正确处理它,但有时不会。
为什么会这样?这里的潜在机制是什么?
Azure文档(https://learn.microsoft.com/en-us/azure/azure-functions/dedicated-plan)确实说过,我们应该启用always on以使函数应用程序“正常工作”,但从未详细说明原因和会发生什么。我在某个地方读到always on不影响计费-为什么允许关闭always on?是否有需要这样做的具体情况?

csbfibhn

csbfibhn1#

是的,“始终开启”功能可使底层主机保持运行。在专用功能应用程序计划中,必须将“始终开启”切换为“开启”。原因,此功能将保持应用程序加载并在后端运行,即使没有从服务总线功能触发器启动触发器。否则,功能应用程序将处于空闲状态,并且需要冷启动,冷启动将导致加载功能触发器的延迟。
请参阅Sneha-Agrawal-MSFT关于始终开启功能的answer
可以关闭“始终开启”切换,因为存在要求,即功能应用程序不需要频繁接收消息。
关于Billing功能应用程序按功能触发器运行的时间计费,并且始终开启功能不包括在计费中。

相关问题