0

Teil des Projekts, ich möchte Daten in meiner Web-Seite von auf eine DynamoDB-Datenbank schreiben, dafür habe ich einen Node.js-Code geschrieben AWS Lambda, um Elemente in eine DynamoDB-Tabelle zu schreiben. Erstellung eines Webseitenformulars mit mehr als einem Eintrag, damit Benutzer die erforderlichen Informationen ausfüllen können, und Erstellung eines API-Gateways zur Verbindung von Lambda und HTML-Webseite. Im Folgenden finden Sie die Codes für Lambda, API-Gateway und HTML-Formular. Bitte gehen Sie sie durch.Schreiben in DynamoDB-Tabelle mit API-Gateway und Lambda von einer Webseite

Lambda Mein Code:

exports.handler = function (e,ctx,callback) { 
"use strict"; 

var params = { 

Item : { 

      marchp : e.stepno, 
      Prev_step_no :e.prevstepno, 
      Next_step_no: e.nextstepno, 
      Inputdata : e.inputdata, 
      Acknowledgement: e.acknowledgement, 
      Condition: e.condition, 
      }, 
     TableName : 'MARCHPevents' 
    }; 

API-Gateway Body Mapping-Vorlagen:

{ 
    "stepno": $input.json("$.stepno"), 
    "prevstepno": $input.json("$.prevstepno"), 
    "nextstepno": $input.json("$.nextstepno"), 
    "inputdata": $input.json("$.inputdata"), 
    "acknowledgement": $input.json("$.acknowledgement"), 
    "condition": $input.json("$.condition") 
    } 

HTML-Code pasing Daten zu API-Gateway:

url:API_URL, 
success: function(data){ 
$('#entries').html(''); 

data.Items.forEach(function(MARCHPreventsItem){ 
$('#entries').append('<p>' + MARCHPreventsItem.InputData + '</p>'); 
}) 
} 
}); 
}); 

$('#submitButton').on('click', function() { 
    $.ajax({ 
     type: 'POST', 
     url: API_URL, 
     data: JSON.stringify({ "stepno": $('#s1').val() }), 
     data: JSON.stringify({ "prevstepno": $('#p1').val() }), 
     data: JSON.stringify({ "nextstepno": $('#n1').val() }), 
     data: JSON.stringify({ "inputdata": $('#msg').val() }), 
     data: JSON.stringify({ "acknowledgement": $('#ack').val() }), 
     data: JSON.stringify({ "condition": $('#con').val() }), 
     contentType: "application/json", 
     success: function (data) { 
      location.reload(); 
     } 
    }); 
    return false; 
}); 

Wenn übergeben einen Wert von HTMLwebpage Formular an API-Gateway zu übergeben an Lambda, die diesen Wert an DynamoDB schreiben.

Problem Facing vergeht mehr als ein Wert von HTML-Webseite Form diesmal API-Gateway es

Jede Hilfe einen Aufruf Fehler bei Lambda ist mit?

+2

Ihr Code ist unvollständig und hat Syntaxfehler (siehe [jQuery.ajax()] (http://api.jquery.com/jquery.ajax/)). Bitte gehen Sie erneut durch Ihren Code und fügen Sie alle relevanten Informationen hinzu, die zur Identifizierung Ihres Problems beitragen könnten. Zum Beispiel, welche DynamoDB/DocumentClient-Methode verwendet Ihre Lambda-Funktion? –

Antwort

0

Ihr JavaScript sieht nicht korrekt aus - Sie überschreiben den Datenparameter. Sie müssen die Eigenschaften für das Datenobjekt setzen, dh

var obj = { 
     stepno : ${'#s1'}.val(), 
     prevstepno : ${'#s2'}.val(), 
     ... 
    } 

    $.ajax({ 
     type: 'POST', 
     url: API_URL, 
     data: obj, 
     contentType: "application/json", 
     success: function (data) { 
      location.reload(); 
     } 
    }); 
Verwandte Themen