Function CosmosDB与Azure功能和信号器的集成
我正在处理microsoft在下面的链接中提供的示例 我遵循了所有步骤,在本地使用azure函数运行代码时出现以下错误: 函数“Functions.OnDocumentsChanged”的侦听器无法启动 开始[2019年2月18日晚上9:50:54]功能听众 “Functions.OnDocumentsChanged”无法启动。 Microsoft.Azure.Documents.ChangeFeedProcessor:租约集合, 如果已分区,则分区密钥必须等于idFunction CosmosDB与Azure功能和信号器的集成,function,signalr,azure-cosmosdb,Function,Signalr,Azure Cosmosdb,我正在处理microsoft在下面的链接中提供的示例 我遵循了所有步骤,在本地使用azure函数运行代码时出现以下错误: 函数“Functions.OnDocumentsChanged”的侦听器无法启动 开始[2019年2月18日晚上9:50:54]功能听众 “Functions.OnDocumentsChanged”无法启动。 Microsoft.Azure.Documents.ChangeFeedProcessor:租约集合, 如果已分区,则分区密钥必须等于id 错误消息非常清楚,触发器使用
错误消息非常清楚,触发器使用辅助(租约)集合存储状态。在触发器定义中,您可以在上指定是否要指定特定的租约集合名称/数据库名称或保留默认值(“租约”)。 如果通过
CreateLeaseCollectionIfNotExists
属性不存在租约集合,则触发器也可以为您创建租约集合
在您的情况下,您似乎已经拥有先前创建的租约集合
问题在于,如果对租约集合进行了分区,则它需要按/id
进行分区,这就是错误消息所说的:
租约集合(如果已分区)的分区键必须等于
身份证
因此,要解决此问题,您可以:
CreateLeaseCollectionIfNotExists=true
让触发器为您创建它/id
设置为分区键您好,Matias感谢您的回复,我删除了租约集合并添加了您提到的行,但现在当我运行代码时,代码被困在[2/20/2019 3:07:35 AM]主机锁租约上,该租约由实例ID“0000000000000000000000001E2F93C0”获取。这意味着函数已初始化。您是否在Cosmos DB集合中进行更改以触发该函数?