public object Execute() { logger.LogInformation("{0}: Function Started. HTTP Method: {1}, Path: {2}.", DateTime.Now.ToString(), Request.Method, Request.Path); Event @event = null; Context context = null; try { (@event, context) = parameterHandler.GetFunctionParameters(Request); var cancellationSource = new CancellationTokenSource(); var output = invoker.Execute(cancellationSource, @event, context); logger.LogInformation("{0}: Function Executed. HTTP response: {1}.", DateTime.Now.ToString(), 200); LogMetrics(context, 200); return(output); } catch (OperationCanceledException exception) { logger.LogError(exception, "{0}: Function Cancelled. HTTP Response: {1}. Reason: {2}.", DateTime.Now.ToString(), 408, "Timeout"); LogMetrics(context, 408); return(new StatusCodeResult(408)); } catch (Exception exception) { logger.LogCritical(exception, "{0}: Function Corrupted. HTTP Response: {1}. Reason: {2}.", DateTime.Now.ToString(), 500, exception.Message); LogMetrics(context, 500); return(new StatusCodeResult(500)); } }
public object Execute() { Console.WriteLine("{0}: Function Started. HTTP Method: {1}, Path: {2}.", DateTime.Now.ToString(), Request.Method, Request.Path); try { (Event _event, Context _context) = _parameterManager.GetFunctionParameters(Request); CancellationTokenSource _cancellationSource = new CancellationTokenSource(); var output = _invoker.Execute(_function, _cancellationSource, _event, _context); Console.WriteLine("{0}: Function Executed. HTTP response: {1}.", DateTime.Now.ToString(), 200); return(output); } catch (OperationCanceledException) { Console.WriteLine("{0}: Function Cancelled. HTTP Response: {1}. Reason: {2}.", DateTime.Now.ToString(), 408, "Timeout"); return(new StatusCodeResult(408)); } catch (Exception ex) { Console.WriteLine("{0}: Function Corrupted. HTTP Response: {1}. Reason: {2}.", DateTime.Now.ToString(), 500, ex.Message); throw; } }
public async Task <object> Execute() { _logger.LogInformation($"{DateTime.Now}: Function Started. HTTP Method: {Request.Method}, Path: {Request.Path}."); Event @event = null; Context context = null; try { (@event, context) = await _parameterHandler.GetFunctionParameters(Request); object output; var durationMetrics = DurationSeconds.WithLabels(context.ModuleName, context.FunctionName, context.Runtime); using (durationMetrics.NewTimer()) { output = await _invoker.Execute(@event, context); } _logger.LogInformation($"{DateTime.Now}: Function Executed. HTTP response: 200."); LogMetrics(context, 200); return(output); } catch (OperationCanceledException exception) { _logger.LogError(exception, $"{DateTime.Now}: Function Cancelled. HTTP Response: 408. Reason: Timeout."); LogMetrics(context, 408); return(new StatusCodeResult(408)); } catch (Exception exception) { _logger.LogCritical(exception, $"{DateTime.Now}: Function Corrupted. HTTP Response: 500. Reason: {exception.Message}."); LogMetrics(context, 500); return(new StatusCodeResult(500)); } }
public async void CheckDefaultEventFromDefaultParameterHandler(string modName, string funcHandler, string funcTimeout, string funcPort, string funcRuntime, string funcMemoryLimit) { // Arrange EnvironmentManager.SetVariables(modName, funcHandler, funcTimeout, funcPort, funcRuntime, funcMemoryLimit); IParameterHandler parameterHandler = GetDefaultParameterHandler(); HttpRequest httpRequest = EnvironmentManager.GetHttpRequest(); // Act (Event @event, _) = await parameterHandler.GetFunctionParameters(httpRequest); // Assert Assert.NotNull(@event); Assert.NotNull(@event.Extensions); Assert.Equal(httpRequest, @event.Extensions.HttpRequest); Assert.Equal(string.Empty, @event.Data); }
public async void CheckContextFromDefaultParameterHandler(string modName, string funcHandler, string funcTimeout, string funcPort, string funcRuntime, string funcMemoryLimit) { // Arrange EnvironmentManager.SetVariables(modName, funcHandler, funcTimeout, funcPort, funcRuntime, funcMemoryLimit); IParameterHandler parameterHandler = GetDefaultParameterHandler(); HttpRequest httpRequest = EnvironmentManager.GetHttpRequest(); // Act (_, Context context) = await parameterHandler.GetFunctionParameters(httpRequest); // Assert Assert.NotNull(context); Assert.Equal(modName, context.ModuleName); Assert.Equal(funcHandler, context.FunctionName); Assert.Equal(funcTimeout, context.Timeout); Assert.Equal(funcPort, context.FunctionPort); Assert.Equal(funcRuntime, context.Runtime); Assert.Equal(funcMemoryLimit, context.MemoryLimit); }
public async void CheckEventFromDefaultParameterHandler(string eventType, string eventNamespace) { // Arrange string eventId = Guid.NewGuid().ToString(); string eventTime = DateTime.Now.ToString(); var data = new { id = Guid.NewGuid() }; IParameterHandler parameterHandler = GetDefaultParameterHandler(); HttpRequest httpRequest = EnvironmentManager.GetHttpRequest(eventId, eventType, eventTime, eventNamespace, data); // Act (Event @event, _) = await parameterHandler.GetFunctionParameters(httpRequest); // Assert Assert.NotNull(@event); Assert.NotNull(@event.Extensions); Assert.Equal(httpRequest, @event.Extensions.HttpRequest); Assert.Equal(eventId, @event.EventId); Assert.Equal(eventNamespace, @event.EventNamespace); Assert.Equal(eventTime, @event.EventTime); Assert.Equal(eventType, @event.EventType); Assert.NotNull(@event.Data); Assert.Equal(data.id.ToString(), ((JsonElement)@event.Data).GetProperty("id").ToString()); }