从服务总线主题触发Azure函数,而不使用代理连接

从服务总线主题触发Azure函数,而不使用代理连接,azure,azure-functions,azureservicebus,servicebus,Azure,Azure Functions,Azureservicebus,Servicebus,因此,我正在分析使用函数来使用来自主题的服务总线消息是否可行 我们选择的服务总线定价计划对每月“代理连接”(最大1000)的数量有限制 我的理解是,在典型的使用场景中,消费者/侦听器/订阅者连接到一个主题并保持持续连接,在很长一段时间(一天,甚至一周)内接收多条消息而不中断连接,这被视为1个“代理连接”。最终,您可以在单个代理连接上接收数千条消息 这是如何与Azure函数绑定一起工作的?从我在文档中读到的内容来看,一个函数可能是空闲的(即不运行),因此它无法保持这种持久连接 是否有一个单独的函数

因此,我正在分析使用函数来使用来自主题的服务总线消息是否可行

我们选择的服务总线定价计划对每月“代理连接”(最大1000)的数量有限制

我的理解是,在典型的使用场景中,消费者/侦听器/订阅者连接到一个主题并保持持续连接,在很长一段时间(一天,甚至一周)内接收多条消息而不中断连接,这被视为1个“代理连接”。最终,您可以在单个代理连接上接收数千条消息

这是如何与Azure函数绑定一起工作的?从我在文档中读到的内容来看,一个函数可能是空闲的(即不运行),因此它无法保持这种持久连接

是否有一个单独的函数组件来保持此连接的活动状态,以侦听传入的消息?还是每次函数闲置然后重新启动时,我们都要为新的代理连接付费

我将包括当前计划功能的屏幕截图:

稍后在同一链接中:


编辑

发件人:

超过包含数量(标准层中为1000)的并发代理连接峰值数的服务总线费用。峰值以小时为单位进行测量,按比例除以一个月内的744小时,并在每月计费期间相加。包含的数量(每月1000个代理连接)在计费周期结束时应用于按比例分配的小时峰值总和

他们在最后一句中特别提到“每月1000个中介连接”

这是一个例子:

10000个设备中的每一个都通过单个AMQP连接进行连接,并从服务总线主题接收命令。这些设备将遥测事件发送到事件中心。如果所有设备每天连接12小时,则适用以下连接费用(除任何其他服务总线主题费用外):10000个连接*12小时*31天/744=5000个代理连接。在每月1000个代理连接的津贴之后,您将收取4000个代理连接的费用,每个代理连接的费率为0.03美元,共计120美元

所以我猜所有这些都是针对10.000个用户在12小时内同时连接到主题,如果他们每天连接24小时,那么9000个代理连接将被计费(10000减去包含的1000)


在任何情况下,我也在尝试验证是否可以通过函数实现持久连接(我被告知它们是通过webjobs实现的)

Azure Functions有一个称为ScaleControl的独立组件,可全天候监控服务总线上的事件

由于函数中的底层SB消息接收器是在WebJobs中实现的,因此在函数实例的整个生命周期中将有一个连接可以检索多条消息,尽管由于其当前的限制,它将一次一条地将这些消息传递给函数代码进行处理

只有在函数代码实际运行时,才会向您收费。这里有一个链接,让您概括了解ScaleControl:

如果您预期的负载相对较高,您是否考虑过使用事件中心而不是服务总线?Azure函数中的ServiceBus触发器当前一次只能处理一条消息,这对于高负载场景来说不是最佳选择。以下是一个GitHub问题,用于跟踪此功能请求:


EventHub触发器可以成批处理消息,这将为每个函数的执行带来更大的收益。请参见

谢谢你的启发性回答。问题:处理每条消息的每个函数是否都算作代理连接,或者ScaleControl是否保持与主题的持久连接,因此每个连接能够传递1条以上的消息?有人告诉我这就是webjobs的工作原理,1个连接,多条消息(这里不讨论批处理,注意事项,并将查看事件中心)。谢谢。ScaleController(SC)不保持与ServiceBus(SB)的持久连接由于SC感兴趣的API仅用于发现主题中第一条消息的a)消息计数和b)年龄。SC每隔10秒进行一次轮询。在a&b上使用启发式,SC将向上/向下扩展实例数。然后,在其on worker VM上运行的每个SB触发的函数实例将创建一个连接,以检索单个消息进行处理。在消费计划中,如果没有错误,每个函数实例的连接将最多持续10分钟。我需要澄清我之前的陈述-您是正确的,因为函数中的底层SB消息接收器是在WebJobs中实现的,因此将有一个连接,可以在函数实例的整个生命周期中检索多条消息,尽管由于其当前的限制,它将这些消息一次一条地传递给您的函数代码进行处理。非常感谢Ling,这就完成了对我问题的回答!你找到答案了吗?我也担心代理连接,似乎没有人理解azure函数触发器的成本