Functions.Templates/Templates/KustoOutputBinding-CSharp/KustoOutputBindingCSharp.cs (38 lines of code) (raw):

using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using Microsoft.Azure.WebJobs.Kusto; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using System.IO; using System.Threading.Tasks; namespace Company.Function { public static class KustoOutputBindingCSharp { // Visit https://github.com/Azure/Webjobs.Extensions.Kusto/tree/main/samples/samples-csharp#kustoattribute-for-output-bindings // KustoInputBinding sample // Execute queries against the ADX cluster. // Add `KustoConnectionString` to the local.settings.json [FunctionName("KustoOutputBindingCSharp")] public static async Task <CreatedResult> Run( [HttpTrigger(AuthorizationLevel.Function, "post", Route = "api/item/add")] HttpRequest req, [Kusto(Database: "DB", // The database to ingest the data into , e.g. functionsdb TableName = "TargetTable", // Table to ingest data into, e.g. Storms Connection = "KustoConnectionString")] IAsyncCollector<Item> output, ILogger log) { log.LogInformation("C# HTTP trigger with Kusto Output Binding function processed a request."); string requestBody = await new StreamReader(req.Body).ReadToEndAsync(); Item item = JsonConvert.DeserializeObject <Item> (requestBody) ?? new Item { ItemID = 1, ItemName = "Item-1", ItemCost = 2.03 }; await output.AddAsync(item); return new CreatedResult(req.Path, item); } } public class Item { public long ItemID { get; set; } public string ItemName { get; set; } public double ItemCost { get; set; } } }