2017-01-17 1 views
1

Ich habe eine Lambda-Funktion auf Amazon Cloud ausgeführt. Jetzt möchte ich ein node.js-Skript erstellen, um Daten von meinem lokalen System an aws Lambda zu senden und die Callback-Funktion zu verwenden, um den gleichen Wert zu drucken, der von meinem node.js-Code gesendet wurde.aufrufen und senden von Daten an eine aws-Lambda-Funktion mit einem node.js Skript

, nun meine Lambda-Funktion von meinem node.js Code auszulösen, ich bin mit dem folgenden Code:

var AWS = require('aws-sdk'); 

// you shouldn't hardcode your keys in production! See http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/node-configuring.html 

AWS.config.update({accessKeyId: 'myaccessKeyId', secretAccessKey: 'mysecretAccessKey',region:'region',correctClockSkew: true}); 

var lambda = new AWS.Lambda({apiVersion: '2015-03-31'}); 
var params = { 
    FunctionName: 'myLambdaFunction', /* required */ 
    Payload: 'true', 
}; 
lambda.invoke(params, function(err, data) { 
    if (err) console.log(err, err.stack); // an error occurred 
    else  console.log(data);   // successful response 
}); 

Ich bin neu in diesem Lambda-Funktion Konzept, so kann mir jemand helfen, indem sie sagen, wie Daten aus dem oben genannten Code an die gewünschte Lambda-Funktion senden? Mit dem obigen Code kann ich meine Lambda-Funktion auslösen und bekomme in meiner Node-App, was auch immer ich in der Payload drucke.

Ich erhalte den folgenden Fehler, wenn ich einen benutzerdefinierten Zeichenfolgenwert (anders als 'wahr', 'falsch' oder 'null') in Payload und die API-Version verwende, die ich verwende: apiVersion: '2015 -03-31 ', und das aws-sdk-Knotenmodul wurde kürzlich installiert, also denke ich, dass es auf dem neuesten Stand ist. Fehlermeldung:

{InvalidRequestContentException: Unbekanntes token 'custom_data': erwartete ('true', 'false' oder 'null') auf [Quelle: Konnte Anfrage Körper in json analysieren [B @ 7d2214ec; Zeile: 1, Spalte: 23] bei Object.extractError (/usr/lib/node_modules/aws-sdk/lib/protocol/json.js:43:27) bei Request.extractError (/ usr/lib/node_modules/aws-sdk/lib/protocol/rest_json.js: 37: 8) bei Request.callListeners (/usr/lib/node_modules/aws-sdk/lib/sequential_executor.js:105:20) bei Request.emit (/ usr/lib/node_module/aws-sdk/lib/sequenzielle_executor.js: 77: 10) bei Request.emit (/usr/lib/node_modules/aws-sdk/lib/request.js:668:14) auf Anfrage .transition (/usr/lib/node_modules/aws-sdk/lib/request.js:22:10) bei AcceptorStateMachine.runTo (/usr/lib/node_modules/aws-sdk/lib/state_machine.js:14:12) unter /usr/lib/node_modules/aws-sdk/lib/state_machine.js:26:10 auf Anfrage. (/usr/lib/node_modules/aws-sdk/lib/request.js:38:9) auf Anfrage. (/usr/lib/node_modules/aws-sdk/lib/request.js:670:12) Nachricht: 'Anfragekörper konnte nicht in json zerlegt werden: Unerkanntes Token \' custom_data \ ': erwartete (\' true \ ' , \ 'false \' oder \ 'null \') \ n bei [Quelle: [B @ 7d2214ec; Linie: 1, Säule: 23]‘, Code: 'InvalidRequestContentException', Zeit: 2017-01-16T16: 48: 38.514Z, requestId: '3bee0e2c-dd39-11e6-9df3-5f7a24f73b9d', status: 400 , retryable: false, retryDelay: 26.112914258191733} 'InvalidRequestContentException: Anfragekörper konnte nicht in json zerlegt werden: Unbekanntes Token \' custom_data \ ': erwartete (\' true \ ', \' false \ 'oder \' null \ ')) \ n bei [Quelle: [B @ 7d2214ec; Zeile: 1, Spalte: 23] \ n bei Object.extractError (/usr/lib/node_modules/aws-sdk/lib/protocol/json.js:43:27)\n bei Request.extractError (/ usr/lib/node_modules/aws-sdk/lib/protokoll/rest_json.js: 37: 8) \ n bei Request.callListeners (/usr/lib/node_modules/aws-sdk/lib/sequential_executor.js:105:20)\n auf Anfrage .emit (/usr/lib/node_modules/aws-sdk/lib/sequential_executor.js:77:10)\n bei Request.emit (/usr/lib/node_modules/aws-sdk/lib/request.js:668: 14) \ n bei Request.transition (/usr/lib/node_modules/aws-sdk/lib/request.js:22:10)\n bei AcceptorStateMachine.runTo (/ usr/lib/node_modules/aws-sdk/lib/state_machine.js: 14: 12) \ n unter /usr/lib/node_modules/aws-sdk/lib/state_machine.js:26:10\n auf Anfrage. (/usr/lib/node_modules/aws-sdk/lib/request.js:38:9)\n auf Anfrage. (/usr/lib/node_modules/aws-sdk/lib/request.js:670:12) '

Bitte helfen.

Antwort

0

Sie senden gerade Daten an die Lambda-Funktion. Die Daten, die Sie senden, sind die Zeichenfolge 'true'. Sie senden Daten über die Eigenschaft Payload.Von the documentation:

Payload - (Puffer, typisierten Array, Fleck, String)

JSON, dass Sie Ihre Lambda-Funktion als Eingabe zur Verfügung stellen möchten.

+0

Ich habe versucht, andere Zeichenfolgenwerte zu senden, aber es wird ein Fehler ausgegeben, der besagt, dass der Nutzdatenwert 'wahr' oder 'falsch' oder 'null' sein sollte. Können Sie bitte das gleiche versuchen, mit einem anderen String-Wert und lassen Sie mich wissen, ob Sie das gleiche Problem haben oder nicht. Ansonsten gibt es andere Probleme, die ich vermisse. –

+0

Und noch eine Sache, um die Daten, die ich von der node.js-App sende und in meiner Lambda-Funktion anzeigen möchte, sollte ich irgendwelche Zeilen Code hinzufügen? Freundlich helfen. –

+0

Können Sie Ihre Frage bearbeiten, um den Code und die tatsächliche Fehlermeldung anzuzeigen, wenn Sie versuchen, eine andere Zeichenfolge zu übergeben? –

Verwandte Themen