У меня есть лямбда-функция, написанная в node.js, которая возвращает изображение QRCode.Я также пытаюсь прочитать значение из Dynamodb.Однако журналы консоли внутри нее, похоже, не выполняются, что заставляет меня думать, что код не запускается.
Я подозреваю, что это связано с проблемами синхронизации.Но я не уверен, что делать, чтобы это исправить.Код ниже:
var qrImage = require('qr-image');
const AWS = require('aws-sdk');
const docClient = new AWS.DynamoDB.DocumentClient({region:'us-west-2'});
exports.handler = async(event, context, callback) => {
var path = event.path;
var drugId = path.replace(/\//g, '');
var params = {
TableName: 'QRCodeInfo',
Key: {
"DrugId" : "1234"
}
};
docClient.get(params, function(err,data) { //does not get executed
if (err) {
console.log(err);
} else {
console.log(data);
}
});
return sendRes(200,drugId); //this works. Image is seen.
};
const sendRes = (status, body) => {
//console.log(body);
const svg_string = qrImage.imageSync(body, { type: 'svg', size: 10 });
var response = {
statusCode: status,
headers: {
"Content-Type": "image/svg+xml"
},
body: svg_string
};
return response;
};