Я пишу приложение без сервера, и у меня возникают проблемы при вызове лямбда-функции внутри функции.Две функции работают как положено по отдельности.когда я пытаюсь выполнить функцию B из функции A, это дает следующую ошибку.
Неожиданный токен в JSON в позиции 0
, вот мой код, и я уверен, что моя полезная нагрузка не передается второй функции, как я могу ее разрешить?Функция A
module.exports.create = (event, context, callback) => {
console.log('inside');
const timestamp = new Date().getTime();
console.log(JSON.parse(event.body));
const data = JSON.parse(event.body);
var jsonObj = {'user_avatar' : 'data.user_avatar',
'name' : 'data.name'}
const params2 = {
FunctionName: "serverless-rest-api-with-dynamodb-dev-uploadImage",
InvocationType: "RequestResponse",
LogType: 'Tail',
Payload: JSON.stringify(jsonObj)
};
lambda.invoke(params2, function (err, data) {
if (err) {
console.log('error : ' + err)
callback(err, null)
} else if (data) {
const response = {
statusCode: 200,
body: JSON.parse(data.Payload)
}
callback(null, response)
}
})
const params = {
TableName: process.env.BANK_TABLE,
Item: {
id: uuid.v1(),
bankName: data.bankName,
bankUrl: data.bankUrl,
bankCardUrl: data.bankCardUrl,
bankLogoID: data.bankLogoID,
createdAt: timestamp,
updatedAt: timestamp,
},
};
// write the offers to the database
dynamoDb.put(params, (error) => {
// handle potential errors
if (error) {
console.error(error);
callback(null, {
statusCode: error.statusCode || 501,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t create the offer item.',
});
return;
}
console.log('setting callback');
// create a response
const response = {
statusCode: 200,
body: JSON.stringify(params.Item),
};
callback(null, response);
});
};
Функция B
module.exports.create = (event, context, callback) => {
console.log('staring');
console.log(JSON.parse(event.body));
let encodedImage =JSON.parse(event.body).user_avatar;
let decodedImage = Buffer.from(encodedImage, 'base64');
var filePath = "avatars/" + JSON.parse(event.body).name + ".jpg"
var params = {
"Body": decodedImage,
"Bucket": "imageuploads",
"Key": filePath
};
s3.upload(params, function(err, data){
if(err) {
callback(err, null);
} else {
let response = {
"statusCode": 200,
"headers": {
"my_header": "my_value"
},
"body": JSON.stringify(data),
"isBase64Encoded": false
};
callback(null, response);
}
});
};