public void LoadCsv(S3EventNotification s3Event, ILambdaContext context) { LambdaLogger.Log("Processing request started"); try { var connection = _databaseActions.SetupDatabase(context); foreach (var record in s3Event.Records) { LambdaLogger.Log("Inside of the s3 events loop"); var s3 = record.S3; try { //truncate correct table _databaseActions.TruncateTable(context, Environment.GetEnvironmentVariable("DB_TABLE_NAME")); // load csv data into table _databaseActions.CopyDataToDatabase(context, record.AwsRegion, s3.Bucket.Name, s3.Object.Key); } catch (NpgsqlException ex) { LambdaLogger.Log($"Npgsql Exception has occurred - {ex.Message} {ex.InnerException} {ex.StackTrace}"); throw ex; } //close db connection connection.Close(); LambdaLogger.Log("End of function"); } } catch (Exception ex) { LambdaLogger.Log($"Exception has occurred - {ex.Message} {ex.InnerException} {ex.StackTrace}"); throw ex; } }