猿问

如何在没有任何 API 调用的情况下从网页 Javascript 将 JSON 字符串传递给

我试图将输入到网页上 HTML 表单的各个字段中的数据作为 JSON 字符串发送到 AWS Lambda,以便 Lambda 可以将其输入到 DynamoDB 表中。由于这是一个类项目,我选择放弃使用网关 API,我只想从网页 javascript 内部原始调用 Lambda 函数并将 JSON 作为参数传递给 Lambda 函数。我的网页成功调用了 Lambda 函数,我已对其进行硬编码以将预定义的条目输入到 Dynamo 表中。我也有 web js 从表单制作一个 JSON 字符串。我的目标是在调用 Lambda 函数时将 JSON 字符串作为参数发送给它,但我不确定我将如何进行,因为这是我第一次使用 AWS。我知道我必须对有效载荷参数做一些事情,但我可以' 没有找到一个明确的例子来说明什么。我确保我在 HTML 中有正确的凭据和 SDK 导入。下面是我的代码:


网页JS:



var lambda = new AWS.Lambda();



function makeJSON(){

  var userID = "";

  var name = document.forms["characterForm"]["characterName"].value;

  //alert(name);

  //alert(typeof name);

  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;



  //alert(name + race + playerClass + strength, dexterity, constitution, intelligence, wisdom, charisma);


  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);


  var myParams = {

    FunctionName : 'addCharacterSheet',

    InvocationType : 'RequestResponse',

    LogType : 'None',

    //Payload : {"userID": userID, "name": name, "race": race, "class": playerClass, "strength": strength, "dexterity": dexterity, "constitution": constitution, "intelligence": intelligence, "wisdom": wisdom, "charisma" : charisma}

  }


我认为它与 Node.js 代码中的 events.body 有关,但同样,我对此不是很清楚,而且我无法从 Amazon 的文档中获得太多信息。任何建议、提示或资源都将不胜感激


江户川乱折腾
浏览 156回答 2
2回答

繁星点点滴滴

我不知道我是否正确理解您的问题,但您传递给 AWS Lambda 的参数可在 event.arguments

白猪掌柜的

只需将有效负载作为 JSON 字符串传递:var payload_obj = { name: "John", age: 30, city: "New York" };var payload_json = JSON.stringify(payload_obj);var myParams = {    FunctionName: 'addCharacterSheet',    InvocationType: 'RequestResponse',    LogType: 'None',    Payload: payload_json  }lambda.invoke(myParams, function(err, data){      ...    });
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答