Я пытаюсь отправить файл json, созданный из полей веб-страницы, в функцию узла в AWS Lambda, чтобы добавить его в таблицу DynamoDB. Я сделал JSON, но я не знаю, как передать его из js, используемого для страницы, в лямбда-функцию. Так как это для проекта класса, моя группа и я решили отказаться от API шлюза amazon и просто вызываем лямбда-функции, используя js sdk amazon. Я проверил документацию Amazon и другие различные примеры, но мне не удалось найти полное решение.
Функция узла в лямбде
const AWS = require('aws-sdk');
const db = new AWS.DynamoDB.DocumentClient({region: 'us-east-1'});
exports.handler = async (event) => {
const params = {
TableName : 'characterTable',
Item: {
name : 'defaultName'
}
};
const userID = 'placeholder';
params.Item.userID = userID;
return await db.put(params).promise();
};
//}
Веб-страница js:
var lambda = new AWS.Lambda();
function makeJSON(){
var userID = "";
var name = document.forms["characterForm"]["characterName"].value;
var race = document.forms["characterForm"]["race"].value;
var playerClass = document.forms["characterForm"]["class"].value;
var strength = document.forms["characterForm"]["strength"].value;
var dexterity = document.forms["characterForm"]["dexterity"].value;
var constitution = document.forms["characterForm"]["constitution"].value;
var intelligence = document.forms["characterForm"]["intelligence"].value;
var wisdom = document.forms["characterForm"]["wisdom"].value;
var charisma = document.forms["characterForm"]["charisma"].value;
characterSheetObj = {userID: userID, name: name, race: race, class: playerClass, strength: strength, dexterity: dexterity, constitution: constitution, intelligence: intelligence, wisdom: wisdom, charisma: charisma}
characterSheetJSON = JSON.stringify(characterSheetObj);
alert(characterSheetJSON);
var myParams = {
FunctionName : 'addCharacterSheet',
InvocationType : 'RequestResponse',
LogType : 'None',
Payload : characterSheetJSON
}
lambda.invoke(myParams, function(err, data){
//if it errors, prompts an error message
if (err) {
prompt(err);
}
//otherwise puts up a message that it didnt error. the lambda function presently doesnt do anything
//in the future the lambda function should produce a json file for the JavaScript here to do something with
else {
alert("Did not error");
}
});
}
html-страница для необработанного javascript включает в себя правильные настройки для импорта sdk и настройки пула регионов / пользователей
Я просто не знаю, как получить полезную нагрузку из вызова в моем узлефункции, так как я впервые работаю с lambda и Amazon's SDK или вообще занимаюсь веб-разработкой, если честно.