Esempio n. 1
0
    public KinesisFirehoseResponse FunctionHandler(KinesisFirehoseEvent evnt, ILambdaContext context)
    {
        context.Logger.LogInformation($"InvocationId: {evnt.InvocationId}");
        context.Logger.LogInformation($"DeliveryStreamArn: {evnt.DeliveryStreamArn}");
        context.Logger.LogInformation($"Region: {evnt.Region}");

        var response = new KinesisFirehoseResponse
        {
            Records = new List <KinesisFirehoseResponse.FirehoseRecord>()
        };

        foreach (var record in evnt.Records)
        {
            context.Logger.LogInformation($"\tRecordId: {record.RecordId}");
            context.Logger.LogInformation($"\t\tApproximateArrivalEpoch: {record.ApproximateArrivalEpoch}");
            context.Logger.LogInformation($"\t\tApproximateArrivalTimestamp: {record.ApproximateArrivalTimestamp}");
            context.Logger.LogInformation($"\t\tData: {record.DecodeData()}");

            // Transform data: For example ToUpper the data
            var transformedRecord = new KinesisFirehoseResponse.FirehoseRecord
            {
                RecordId = record.RecordId,
                Result   = KinesisFirehoseResponse.TRANSFORMED_STATE_OK
            };
            transformedRecord.EncodeData(record.DecodeData().ToUpperInvariant());

            response.Records.Add(transformedRecord);
        }

        return(response);
    }
Esempio n. 2
0
        public KinesisFirehoseResponse ProcessStreamAsync(KinesisFirehoseEvent kinesisFireHoseEvent, ILambdaContext context)
        {
            context.Logger.LogLine($"{context.AwsRequestId} {nameof(ProcessStreamAsync)}");
            var records  = kinesisFireHoseEvent.Records.Select(p => ProcessActivityRecord(p, context.Logger));
            var response = new KinesisFirehoseResponse
            {
                Records = records.ToList()
            };

            return(response);
        }