Azure functions Azure函数应用程序CosmosDbTrigger提供空参数错误
我正在定义Azure Function应用程序,如下所示: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",
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)
{
..
}