AWS Lambda не вернет запрос - PullRequest
       17

AWS Lambda не вернет запрос

0 голосов
/ 03 августа 2020

У меня есть лямбда, созданная с помощью ApiGateway / Serverless.

Он выполнит запрос MySQL. Сервер MySQL запущен и работает и выполняет другие запросы без проблем, кажется, что это единственная лямбда, которая возвращает пустой объект.

Он принимает почтовый запрос с идентификационным номером в теле и затем запрашивает БД и возвращает объект / данные. Как и раньше, сервер работает правильно. Только этот возвращает пустой объект.

Я начал думать, что это может быть завершено до того, как будут возвращены результаты, я попытался запустить это как syn c, так и ayn c с теми же результатами.

Я новичок от sh до c#, так что простите, если код может быть более эффективным.

Не знаю, почему каждый раз возвращается пустой объект.

namespace Aws.Lambda
{
    public class SearchHandler:BaseHandler
    {
        public async Task<APIGatewayProxyResponse> getId(LambdaRequest request)
        {
            var error = new Errorhandle();
            var connect = new Connection(); //THIS IS THE DATABASE CONNECTION CLASS (WORKS)

            var result = new List<ReturnTypes>();
            var number = JsonConvert.DeserializeObject<bodyType>(request.body);
            bool boolNumber = String.IsNullOrWhiteSpace(number.factura);

            try
            {
                if(boolNumber)
                {
                    return error.errorApiResponse("empty");
                }
                else
                {
                   await Task.Yield(); // TRYING TO ASYNC / AWAIT THIS, 
     
                   string x = $"SELECT * FROM Table1 WHERE ID_NUM ='{number}'";
                   Console.WriteLine(x); //LOGGING THE QUERY FOR ERRORS (NONE FOUND COPY AND PASTED QUERY AND IT WORKED IN WORKBENCH).

                   var results = connect.getData(x); //QUERY EXECUTE PASS TO FUNCTION MADE IN CLASS

                   if(!results.Read())
                   {
                       return error.errorApiResponse("reader is empty");
                   }
                     while (results.Read())
                    {
                        resultList.Add(insertData(results));
                    }
                    return new APIGatewayProxyResponse
                    {
                        StatusCode = 200,
                        Body = JsonConvert.SerializeObject(resultList),
                        Headers = headerList = new Dictionary<string, string>
                { 
                  { "Content-Type", "application/json" }, 
                  { "Access-Control-Allow-Origin", "*" },
                  {"Access-Control-Allow-Methods","OPTIONS,GET"}
                };
                    };
                }
            } catch (Exception e)
            {
                return error.errorApiResponse("exception error");
                throw e; 
            }
        }


        private static ReturnTypes insertData(System.Data.IDataReader results)
        {
            return new ReturnTypes { Num = results["ID"], Body = results["UUID"];
        }
    }
}
...