c# - AWS Lambda 不会返回查询
问题描述
我有一个用 ApiGateway / Serverless 构建的 lambda。
它将执行 MySQL 查询。MySQL 服务器已启动并运行并执行其他查询没有问题,似乎这是唯一返回空对象的 Lambda。
它接受正文中带有 ID 号的发布请求,然后查询数据库并返回对象/数据。就像在服务器正常运行之前一样。只是这个返回和空对象。
我开始认为这可能在返回结果之前完成,我尝试同时运行 sync 和 aync 并获得相同的结果。
我对 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"];
}
}
}
解决方案
推荐阅读
- javascript - 无法使用 .not() 或 :not 正确
- c# - UWP Storyboard 和 CallMethodAction 的仅发布例外
- reactjs - 添加或删除后 Redux Firestore 状态未更新
- powershell - 从powershell 4中的zip文件中删除文件
- java - 使用光标加载程序按下后退按钮时应用程序崩溃
- git - 如何从空存储库到 HEAD 选择 git 修订范围?
- android - 如何使多屏幕支持 16:9、18.5:9、19:9 的布局
- html - 即使 html 文件没有错误,标记验证也不显示绿色横幅
- sql - 如何更改字符串的格式
- javascript - 为什么我无法将输入数据保存到 AsyncStorage?