public static async Task QueueProcessor([QueueTrigger("%QueueName%", Connection = "StorageConnectionString")]
                                         QueueWorkItem myQueueItem, [CosmosDB(
                                                                         databaseName: "%CosmosDBDatabase%",
                                                                         collectionName: "%CosmosDBCollection%",
                                                                         ConnectionStringSetting = "CosmosDBConnectionString",
                                                                         Id = "{Id}", PartitionKey = "{Partitionkey}")] DocDBRecord document,
                                         [Table("%ProcessingResultsTable%", Connection = "StorageConnectionString")] IAsyncCollector <ProcessingResult> tableOutput,
                                         ILogger log)
 {
     await DocumentProcessor.ProcessDocument(document, tableOutput, log, nameof(QueueProcessor));
 }
        public static async Task CosmosDbChangeProcessor([CosmosDBTrigger(
                                                              databaseName: "%CosmosDBDatabase%",
                                                              collectionName: "%CosmosDBCollection%",
                                                              ConnectionStringSetting = "CosmosDBConnectionString",
                                                              LeaseCollectionName = "CosmosDBChangeProcessorLeases",
                                                              MaxItemsPerInvocation = 9, /*we need to set this to prevent timeouts when too many records are grabbed. Calculated using (functiontimeoutduration * 60 / ItemProcessingDurationSeconds) -1 for overhead*/
                                                              CreateLeaseCollectionIfNotExists = true)] IReadOnlyList <Document> input,
                                                         [Table("%ProcessingResultsTable%", Connection = "StorageConnectionString")] IAsyncCollector <ProcessingResult> tableOutput,
                                                         ILogger log)
        {
            if (input == null || input.Count <= 0)
            {
                return;
            }

            await input.ParallelForEachAsync(async doc =>
            {
                await DocumentProcessor.ProcessDocument(doc, tableOutput, log, nameof(CosmosDbChangeProcessor));
            });
        }