Azure Function App CosmosDbTrigger 给出空参数错误

Azure Function App CosmosDbTrigger Gives Null Parameter Error

我正在定义一个 Azure Function App 如下:

public static void Run(
            [CosmosDBTrigger(
            databaseName: "dbName",
            collectionName: "collectiontoMonitor",
            ConnectionStringSetting = "collectionConnectionStringSettingName",
            LeaseDatabaseName = "LeaseDBName",
            LeaseCollectionName = "LeaseCollection",
            LeaseConnectionStringSetting = "LeaseConnectionString",
            LeaseCollectionPrefix ="funcName")]IReadOnlyList<Document> input, ILogger log)
        {
..
}

我从 visual studio 发布并且它没有任何错误。但是,即使在 Collection 发生更改后,也永远不会触发 Function。 如果我手动 运行 函数,我会得到错误:

Value cannot be null. Parameter name: o

以上是确切的错误消息,我没有任何名称为 'o' 的参数。我能错过什么。

更新:以防万一,Function App 与 Cosmos 的订阅不同。

好的,我终于通过请求创建租赁集合(如果它不存在)来为我工作。以前,我手工创建了它,很可能没有正确配置它。一旦我删除了租赁集合并请求创建它(如果不存在),我看到它已正确创建并且我的问题已解决。

更改为:

public static void Run(
            [CosmosDBTrigger(
            databaseName: "dbName",
            collectionName: "collectiontoMonitor",
            ConnectionStringSetting = "collectionConnectionStringSettingName",
            LeaseDatabaseName = "LeaseDBName",
            LeaseCollectionName = "LeaseCollection",
            LeaseConnectionStringSetting = "LeaseConnectionString",
            CreateLeaseCollectionIfNotExists = true, // Add this line
            LeaseCollectionPrefix ="funcName")]IReadOnlyList<Document> input, ILogger log)
        {
..
}