Azure functions Azure函数上的CosmosDBTrigger不包含租约集合

Azure functions Azure函数上的CosmosDBTrigger不包含租约集合,azure-functions,azure-cosmosdb,Azure Functions,Azure Cosmosdb,我有一个Azure函数,每次更新CosmosDb集合中多个项目上的一个时都会触发该函数 代码正常工作: [StorageAccount("AzureWebJobsStorage")] public static class ChangeFeedFunction { [FunctionName("ChangeFeedFunction")] public static void ChangeFeedFunction( [CosmosDBTrigger(

我有一个Azure函数,每次更新CosmosDb集合中多个项目上的一个时都会触发该函数

代码正常工作:

[StorageAccount("AzureWebJobsStorage")]
public static class ChangeFeedFunction
{
    [FunctionName("ChangeFeedFunction")]
    public static void ChangeFeedFunction(
        [CosmosDBTrigger(
            databaseName: "MyDataBase",
            collectionName: "MyCollection",
            ConnectionStringSetting = "CosmosDbConnectionString",
            LeaseCollectionName = "MyCollection_Leases",
            CreateLeaseCollectionIfNotExists = true
        )] IReadOnlyList<Document> documents,
        [Queue("collection-changes")] ICollector<Message> analystQueue,
        ILogger logger
    )
    {
        //Operations;
    }
[StorageAccount(“AzureWebJobsStorage”)]
公共静态类函数
{
[函数名(“ChangeFeedFunction”)]
公共静态函数(
[CosmosDBTrigger(
数据库名称:“MyDataBase”,
集合名称:“MyCollection”,
ConnectionStringSetting=“CosmosDbConnectionString”,
LeaseCollectionName=“MyCollection\u租赁”,
CreateLeaseCollectionIfNotExists=true
)]IReadOnlyList文档,
[队列(“集合更改”)]ICollector analystQueue,
ILogger记录器
)
{
//业务;
}
但在这种情况下,这意味着我有两个CosmosDb集合(MyCollection和MyCollection_Leases),每月最低40美元。我想降低成本。有没有办法在不使用另一个CosmosDb集合的情况下观察对我的CosmosDb集合的修改

感谢

继租赁收集之后,目前无法避免,因为它承担着重要的责任

当使用触发器存储每个函数的检查点时,我们需要一个
lease
集合。我要说的是,如果有10个文档被插入到cosmos db中,触发器函数会被一个接一个地触发,检查点会随着进程移动并存储到
lease
集合中。突然,触发器关闭了wn是由某些原因造成的。在此期间,又有5个文档插入到数据库中。在触发器功能重新启动后,它知道从哪个节点继续执行功能,检查点位于
lease
collection中。(我希望我已经说清楚了…)

顺便说一句,您可以为所有收藏共享一个
lease
收藏,以获得更具成本效益的方法。请参阅此


至于成本,您可以创建最低配置的
lease
集合。门户上的成本是估计值。价格基于RU的消耗量。请参考此信息。

我建议扩展数据库,而不是集合。如果您以400 RU/s的速度扩展数据库,您可以在整个集合中共享该成本ons.

谢谢你的回答!@JayGong这是否意味着租赁收集必须是同一数据库的一部分?谢谢你的评论