Exemplo n.º 1
0
        public async Task <APIGatewayProxyResponse> ApiGatewayProxyInvocation(APIGatewayProxyRequest apiGatewayProxyRequest, ILambdaContext context)
        {
            var targetVerbosity = Verbosity.Silent;

            if (apiGatewayProxyRequest.StageVariables.ContainsKey("verbosity"))
            {
                Enum.TryParse(apiGatewayProxyRequest.StageVariables["verbosity"], out targetVerbosity);
            }
            _lambdaLogger.Verbosity = targetVerbosity;
            _lambdaLogger.LogDebug(() => "Invoked!");
            _lambdaLogger.LogDebug(() => ApiGatewayProxyHelpers.ProxyRequestToString(apiGatewayProxyRequest));
            try
            {
                var restRequest  = CreateRestRequest(apiGatewayProxyRequest);
                var restResponse = await _dispatcher.DispatchAsync(restRequest, _lambdaLogger);

                return(CreateApiGatewayProxyResponse(restResponse));
            }
            catch (ArgumentException e)
            {
                return(new APIGatewayProxyResponse {
                    Body = _payloadConverter.SerializePayload(new { errorMessage = e.Message }), StatusCode = 405
                });
            }
        }