Azure Cosmos DB Change提要功能无法触发

时间:2020-10-11 12:55:12

标签: azure-functions azure-cosmosdb

我正在编写一些代码,这些代码使用Cosmos作为存储来实现事件源。我的初始文件已成功写入收藏集。然后,我设置了一个Azure函数,该函数可触发对该集合的feed进行更改并将该项目复制到另一个集合。

我的问题是,如果我在本地调试功能应用程序时一切正常,这些更改就可以正常工作(更改通过并可以毫无问题地处理),一旦发布为功能应用程序,功能就不会触发。该函数存在,但总执行计数始终为0。这就像该函数未在计时器上运行并检查提要。我的功能应用程序中的其他功能按预期工作。

我的功能代码是

 [FunctionName("EventSourceWrite")]
        public static void Run([CosmosDBTrigger(
            databaseName: "Puffin",
            collectionName: "EventSource",
            ConnectionStringSetting = "EventSourceConnection",
            CreateLeaseCollectionIfNotExists = true,
            LeaseCollectionName = "leases")]IReadOnlyList<Document> input, ILogger log)
        {
            if (input != null && input.Count > 0)
            {
                log.LogInformation("Documents modified " + input.Count);
                log.LogInformation("First document Id " + input[0].Id);

                var container = Cosmos.GetItemsContainer();

                foreach (var doc in input)
                {
                    var item = JsonConvert.DeserializeObject<Item>(doc.ToString());

                    // reset the Id
                    item.Id = item.ItemId;

                    if(!string.IsNullOrEmpty(item.CollectionId))
                    {
                        container.UpsertItemAsync(item, new Microsoft.Azure.Cosmos.PartitionKey(item.CollectionId));
                    }   
                }
            }
        }

1 个答案:

答案 0 :(得分:2)

请检查功能应用程序的应用程序设置中是否有EventSourceConnection。如果否,请重新输入一次。

enter image description here