오로라 DB에 테이블이 있습니다. AWS API Gateway, AWS Lambda 및 AWS Aurora DB를 시험하고 있습니다.AWS 람다가 event.body를 Aurora DB에 쓰려고 할 때 오류가 발생했습니다
API 게이트웨이에서 요청을 받고 핸들러 함수를 트리거하는 람다 함수를 만들었지 만 event.body를 테이블에 작성하지 않습니다.
exports.insertBill = function(event, context, callback) {
context.callbackWaitsForEmptyEventLoop = false;
console.log(event.body);
var query = rDBConnection.query('INSERT INTO Bill SET ?', event.body, function(err, result) {
if (err) {
callback(null, {"statusCode": 400, "body": JSON.stringify(err)});
} else {
var recordId = result.insertId;
console.log("Record ID " + recordId);
var result = {recordId};
callback(null, {"statusCode": 200, "body": JSON.stringify(result)});
}
});
}
코드가 DB에 연결됩니다.
{
"vendor_Id" : 101,
"user_Id" : 2224
}
을하지만, SQL 오류가 발생합니다 : 내가
"body": "{\n \"vendor_Id\" : 101,\n \"user_Id\" : 2224\n \n }",
(람다 테스트 인터페이스에서)으로 다음과 몸을 설정하려고하면 그것은 (CONSOLE.LOG에서)로 몸을 표시 않습니다
을{
"statusCode": 400,
"body": "{\"code\":\"ER_PARSE_ERROR\",\"errno\":1064,\"sqlState\":\"42000\",\"index\":0}"
}
{ "vendor_Id" : 101, "user_Id" : 2224 }
같은 하드 코딩 된 값을 시도 할 때 rDBConnection.query 대신 event.body ->이 경우 코드는 DB 레코드를 씁니다.
여기에 무엇이 누락되어 있는지 잘 모르겠습니다. API Gateway Test Interface에서 테스트하는 동안 비슷한 결과가 나타납니다.