TL;DR: 这个例子 https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-cosmosdb#trigger---c-example在 VS2017 中对我不起作用。
我有一个 Azure Cosmos DB,希望在其中添加或更新某些内容时触发一些逻辑。为了那个原因,CosmosDB触发器应该很棒。
Tutorial https://learn.microsoft.com/en-us/azure/azure-functions/functions-create-cosmos-db-triggered-function演示了在 Azure 门户中创建触发器,它对我有用。然而,在 Visual Studio(15.5.4,目前最新)中做同样的事情却不会。
我用defaultAzure 函数模板,预定义的Cosmos DB 触发器和近default code:
[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);
}
App runs没有错误但什么也没发生当我实际在数据库中做一些事情时。所以我无法调试事物并实际实现一些所需的逻辑。
连接字符串指定在本地.settings.json and 被认为。如果我故意犯规,触发器会吐出运行时错误。
看起来连接字符串连接到了错误的数据库。但这正是我在通过 Azure Portal 创建的触发器中复制粘贴的字符串。
我哪里可能出错?我还可以检查什么?