Azure函数:CosmosDBTrigger不在Visual Studio中触发

时间:2018-01-19 13:25:15

标签: c# visual-studio azure azure-cosmosdb azure-functions

TL; DR This example在VS2017中对我无效。

我有一个Azure Cosmos数据库,并希望在某些内容添加或更新时触发某些逻辑。为此, CosmosDBTrigger 应该很棒。

Tutorial演示了在Azure门户中创建触发器,它适用于我。但是,在Visual Studio中执行相同的操作(15.5.4,最新版本)不会。

我使用默认 Azure功能模板,预定义 Cosmos数据库触发器和几乎默认代码:

[FunctionName("TestTrigger")]
public static void Run(    
    [CosmosDBTrigger("Database", "Collection", ConnectionStringSetting = "myCosmosDB")]
    IReadOnlyList<Document> input,
    TraceWriter log)
    {
        log.Info("Documents modified " + input.Count);
        log.Info("First document Id " + input[0].Id);
    }

应用 运行 ,当我在数据库中实际执行操作时,没有错误 但没有任何反应 。所以我无法调试并实际实现一些必需的逻辑。

连接字符串 local.settings.json 中指定, 被视为 。如果我刻意犯规,则会触发吐出运行时错误。

看起来连接字符串都是错误的数据库。但它正是我通过Azure门户在触发器中创建的一个复制的字符串。

我哪里可能出错?我还能检查什么?

1 个答案:

答案 0 :(得分:3)

根据您的评论,您同时为同一个集合和相同的租约集合运行门户网站和本地应用程序。

这意味着两个应用程序之间相互竞争锁定(租赁)收集处理。门户网站App在您的情况下获胜,接受了租约,因此本地应用程序无所事事。