首页 > 解决方案 > 为每个逻辑分区缩放 Azure Functions 的 CosmosDB 绑定

问题描述

我希望我的 Azure 函数可以按逻辑分区而不是按物理分区进行扩展。我已经测试了 Azure 函数绑定,当我有多个物理分区时它确实可以扩展(在我的测试中,我需要将我们的 RU 从 2000 增加到 20000)。但我不需要那么多 RU,因为我将它用作事件存储。我不是在查询数据,只是通过我的 Azure 函数处理每条消息。所以我想知道是否有办法让 Azure Functions 按分区向外扩展。我看到在新的 v3 库中有一个ChangeFeedOptions.PartitionKey属性,但该类是内部的,我不确定它是否符合我的要求。

我基本上希望运行与每个逻辑分区分组的新消息一样多的 Azure Functions。实现这一目标的最佳方法是什么?

标签: azureazure-functionsazure-cosmosdb

解决方案


到今天为止,这是不可能的。不由 CF SDK 的用户来进行租赁管理。CF SDK 将为我们做到这一点,我们无法改变它。

理论上,每个逻辑分区实际上有一个租约的唯一方法是拥有一个足够大的逻辑分区以占用整个物理分区。然而,这意味着您将在单个分区中达到 10GB 的数据,这将是您此时的主要关注点。

我不会担心缩放。CF 将产生无缝扩展所需的尽可能多的租约,这种扩展仅取决于数据库中的数据量和分配的 RU 数量。


推荐阅读