Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure functions Azure函数应用程序CosmosDbTrigger提供空参数错误_Azure Functions_Azure Cosmosdb_Cosmosdbtrigger - Fatal编程技术网

Azure functions Azure函数应用程序CosmosDbTrigger提供空参数错误

Azure functions Azure函数应用程序CosmosDbTrigger提供空参数错误,azure-functions,azure-cosmosdb,cosmosdbtrigger,Azure Functions,Azure Cosmosdb,Cosmosdbtrigger,我正在定义Azure Function应用程序,如下所示: public static void Run( [CosmosDBTrigger( databaseName: "dbName", collectionName: "collectiontoMonitor", ConnectionStringSetting = "collectionConnectionStringSettingName",

我正在定义Azure Function应用程序,如下所示:

public static void Run(
            [CosmosDBTrigger(
            databaseName: "dbName",
            collectionName: "collectiontoMonitor",
            ConnectionStringSetting = "collectionConnectionStringSettingName",
            LeaseDatabaseName = "LeaseDBName",
            LeaseCollectionName = "LeaseCollection",
            LeaseConnectionStringSetting = "LeaseConnectionString",
            LeaseCollectionPrefix ="funcName")]IReadOnlyList<Document> input, ILogger log)
        {
..
}
以上是确切的错误消息,我没有任何名为“o”的参数。我会错过什么呢


更新:如果有区别,功能应用程序的订阅与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)
        {
..
}
公共静态无效运行(
[CosmosDBTrigger(
数据库名:“数据库名”,
collectionName:“collectiontoMonitor”,
ConnectionStringSetting=“collectionConnectionStringSettingName”,
LeaseDatabaseName=“LeaseDBName”,
LeaseCollectionName=“LeaseCollection”,
leaseconnectionstringset=“LeaseConnectionString”,
CreateLeaseCollectionIfNotExists=true,//添加此行
LeaseCollectionPrefix=“funcName”)]IReadOnlyList输入,ILogger日志)
{
..
}

是否有剩余的堆栈跟踪?是否检查了连接字符串的设置是否正确?它们在AppSettings中定义。我检查了几次,它们看起来是正确的。@ChrisAnderson MSFT顺便说一句,它们在不同的订阅下。您不能手动运行该函数,这是一个触发器,每当集合发生更改时都会运行。手动运行该函数适用于HttpTrigger之类的东西。您看到的错误是,当您在Functions Portal中使用Run时,您没有发送预期的一批文档。您是否在
应用程序设置中定义了
LeaseConnectionString
collectionConnectionStringSettingName
?您是否有任何其他函数使用完全相同的配置(本地或云中)运行?这些问题经常出现在您的函数日志中。如果您使用Application Insights,您可以检查出现任何函数初始化问题的
跟踪。在这种情况下,您可能会遇到一条关于租约集合错误的消息。
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)
        {
..
}