如果 Azure Function App 在消费计划中缩减为 0,它如何侦听来自事件中心的传入事件?

If an Azure Function App scales down to 0 in a Consumption Plan, how can it listen to incoming events from Event Hub?

假设我在一个消费计划中有一个 Azure Function App 正在侦听 Azure 事件中心。根据 this 文档,如果没有传入事件,函数应用程序实例的数量可以缩减为 0。据我了解,每个函数应用程序实例还实例化一个 Event Processor Host,它正在监听事件中心的分区。但是,如果实例数为 0,那么谁在事件中心侦听以确定是否必须处理消息?当一个函数的实例数为0时,Event Processor Host是否存在?这是我到目前为止关于 Azure Functions + Azure Event Hubs 的(不完整的)图片,我想完成:

在上述文档中,我还阅读了有关比例控制器的信息,它显然会在需要时添加新的功能主机实例。这是否意味着秤控制器还必须监听事件中心?缩放控制器位于何处,它是我可以在 Azure 中创建的函数应用程序资源的一部分,还是托管在 Azure 的独立部分中,与我的函数应用程序的存在无关?

编辑:根据答案采用的图片。

这就是 Azure 上的托管函数运行时为您所做的。它会为您侦听事件中心(或服务总线或其他受支持的触发源)——您无需为该计算付费。一旦检测到新消息,它将启动您的函数的一个或多个实例 - 此时仅开始计费。

Source

如果您 运行 在其他地方工作,例如在k8s集群中,你必须自己托管scale controller并一直保持运行。