我的Azure功能存在问题。该函数无法启动,因为每次都抛出FunctionInvocationException。
内部异常是InvalidOperationException,带有以下消息:
必须为此操作提供PartitionKey
我的函数中有两个连接到Document DB的绑定,一个是从集合中检索特定文档的绑定,另一个是用于审计的out绑定。
这些在我的dev,qa和uat环境中都能很好地工作,只有生产环境才有问题。两个集合(用于设置和审计)都是在没有分区键的情况下创建的,与每个环境相同。
System.InvalidOperationException: 在Microsoft.Azure.Documents.Client.DocumentClient + d__347.MoveNext(Microsoft.Azure.Documents.Client,Version = 1.11.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35)
有什么想法吗?
我已经尝试删除并重新制作审核集合,但这不起作用。我不明白为什么其他环境没问题,但这个环境没有。
编辑:
function.json
{
"scriptFile": "..\\bin\\Cso.Notification.Function.dll",
"entryPoint": "Cso.Notification.Function.Program.Run",
"disabled": false,
"bindings": [
{
"type": "httpTrigger",
"direction": "in",
"webHookType": "genericJson",
"name": "request",
"methods": [
"post"
]
},
{
"type": "documentDB",
"name": "subscriberSettings",
"databaseName": "CSO",
"collectionName": "Settings",
"id": "SubscriberSettings",
"connection": "CsoDocDb",
"direction": "in"
},
{
"type": "http",
"direction": "out",
"name": "res"
},
{
"type": "documentDB",
"name": "collector",
"databaseName": "CSO",
"collectionName": "AuditJSON",
"connection": "CsoDocDb",
"direction": "out"
}
]
}
答案 0 :(得分:0)
我找到了答案。我们查询初始值的一个文档(SubscriberSettings)使用PartitionKey设置错误。
删除集合并在没有分区键的情况下重新创建它就可以了。