我有一个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触发器是绝对荒谬的。
答案 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。