由于绑定错误,Cosmos DB触发器不起作用

时间:2019-06-07 17:14:05

标签: azure nuget azure-functions azure-cosmosdb

我有一个cosmos db,我想用它来触发azure函数。

当我这样做时,会出现此错误:

A ScriptHost error has occurred
Exception while executing function 
Exception binding parameter 'documents'.
Binding can only be done with IReadOnlyList<Document> or JArray
Parameter name: type.

据推测,其原因是因为我引用Azure.DocumentDB Nuget软件包版本2.0.0,因为我的代码库的其余部分都在使用它。此版本与Azure.WebJobs.Extensions.DocumentDB引用的版本为DocumentDB 1.13.2冲突。

Azure.WebJobs.Extensions.DocumentDB是包含CosmosDBTrigger属性的软件包,我需要触发该属性。所以这是必须的。

如何解决DocumentDB 1.13.2和2.0.0之间的冲突?我认为微软不支持最新的DocumentDB支持Cosmos DB触发器是绝对荒谬的。

1 个答案:

答案 0 :(得分:1)

Azure函数具有2个运行时版本V1和V2。

如果您使用Azure Functions V1,则依赖关系与SDK 1.13.2一起使用,原因是因为Azure Functions V1不支持绑定重定向(更多详细信息,请参见https://github.com/Azure/azure-functions-host/wiki/Assembly-Resolution-in-Azure-Functions#assembly-resolution-in-azure-functions-10)。

您还可以选择使用具有不同的扩展程序包和不同功能的Azure Functions V2。 Functions V2中的SDK版本接近最新。以下是V2的官方文档:https://docs.microsoft.com/azure/azure-functions/functions-bindings-cosmosdb-v2#packages---functions-2x

使用Functions V2,您将已经拥有SDK 2.X。