using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Http; using System.Threading.Tasks; using Amazon.KinesisFirehose; using Amazon.KinesisFirehose.Model; using Amazon.Lambda.Core; using Newtonsoft.Json; // Assembly attribute to enable the Lambda function's JSON input to be converted into a .NET class. [assembly: LambdaSerializer(typeof(Amazon.Lambda.Serialization.Json.JsonSerializer))] namespace StockTransactionApi { public class Function { /// /// A simple function that takes a string and does a ToUpper /// /// /// /// public async Task PostHandler(StockTransaction transaction, ILambdaContext context) { var rawContents = JsonConvert.SerializeObject(transaction); using (var client = new AmazonKinesisFirehoseClient()) { using (var memStream = new MemoryStream()) { using (var writer = new StreamWriter(memStream)) { writer.Write(rawContents); } await client.PutRecordAsync("input_transactions", new Record() { Data = memStream }); } } return new HttpResponseMessage(HttpStatusCode.OK); } } }