DynamoDB 데이터베이스에서 항목을 가져 오려고합니다. 내 코드가 현재 작성된 방식과 달리 DynamoDB에서 데이터를 검색하지 못합니다. 내 테스트에서 알 수있는 한 내 콜백이 호출되지 않기 때문에 나는 뭔가 잘못하고있을 것입니다.AWS Lambda의 DynamoDB 객체에서 getItem()을 호출하면 콜백이 실행되지 않습니다.
나는 하루 종일 이걸 보냈고 오늘 아침에 일어난 이래로 그 일을 잘 못 고쳤다.
누군가 내가 여기서 잘못하고있는 것에 대해 통찰력을 제공 할 수 있다면 매우 감사하게 생각합니다. 모두에게 미리 감사드립니다.
최종 메모 : 람다 함수 자체의 시간 초과는 5 분으로 설정됩니다. 그래서 나는 db 쿼리가 반환되기 전에 Lambda 함수가 시간 초과되었다고 생각하지 않습니다. 함수를 실행하면 잠시 후 종료됩니다.
const AWS = require('aws-sdk');
const dynamodb = new AWS.DynamoDB();
var response = null;
var test = false;
function getFromDB(callback) {
const params = {
TableName: process.env['DB_TABLE_NAME'] // evaluates to 'test-table',
Key: {
"id": {
S: postId // evaluates to a big string, pulling it in from an SNS message. Verified it with console.log(). It stores the expected value.
}
}
};
dynamodb.getItem(params, function(err, data) {
if (err) callback(data, true); // an error occurred
else callback(data, true); // successful response
});
}
getFromDB((data, isCalled) => {
response = data;
test = isCalled;
});
console.log(data); // evaluates to null
console.log(test); // evaluates to false
로그를 확인 했습니까? AWS 콘솔에서 lambda 함수를 클릭 한 다음 모니터링 탭을 클릭하고 'Cloudwatch에서보기'를 클릭하십시오. 맨 위 항목이 최신 실행 로그입니다. – Stu
또한 처리기를 어떻게 설정합니까? – Stu
귀하의 처리기 함수는 선택적으로 콜백을 인수로 취할 수 있지만 이벤트와 컨텍스트를 취해야한다고 생각합니다. 이 '함수 (이벤트, 컨텍스트, 콜백)'처럼 – Stu