Immer json-body in der aws Lambda-via API-gateway
Ich bin derzeit mit NodeJS zu bauen, die einen bot auf AWS lambda-über die AWS-Api-Gateway, und ich bin in ein Problem mit POST-requests und JSON-Daten. Mein api verwendet "Verwenden von Lambda-Proxy-integration" und auch wenn ich zum testen den proxy sendet einen content-type Application/json und einige json in dem Körper e.g {"foo":"bar"}
ich kann nicht auf das Objekt zugreifen, ohne Analyse die ersten, die es
e.g
var json = JSON.parse(event.body);
console.log(json.foo);
Ich jetzt weiß, scheint das keine große Sache, nur läuft es über JSON.analysieren, aber ich habe gesehen, eine Reihe anderer Beispiele, in denen dies nicht der Fall. hier sehen https://github.com/pinzler/fb-messenger-bot-aws-lambda/blob/master/index.js
Muss ich noch etwas hinzufügen zu meinem API-gateway zu handhaben, richtig? mein 'Wunsch-Körper' Schritt in die "post-Methode Anforderung" hat einen content-type application/json set-up für den request-body.
Die readme-Datei für das obige Beispiel scheint nicht, die Verwendung von proxy-integration so weit wie ich kann sagen, also ich bin mir nicht sicher, was ich tun sollte, hier
InformationsquelleAutor der Frage TommyBs | 2017-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es zwei verschiedene Lambda-Integrationen, die Sie konfigurieren können, in der API-Gateway, wie Lambda-integration und Lambda-proxy-integration. Für Lambda-integrationdie Sie anpassen können, was Sie gehen, um pass zu Lambda in der Nutzlast, die Sie nicht brauchen, um zu analysieren den Körper, aber wenn Sie mit Lambda-Proxy-integration in der API-Gateway-API-Gateway-proxy alles auf Lambda in der Nutzlast, wie diese,
Für das Beispiel, das Sie verweisen, ist es nicht immer der Körper aus der ursprünglichen Anfrage. Es ist die Konstruktion des response-body zurück zu API-Gateway. Es sollte in diesem format,
InformationsquelleAutor der Antwort Ka Hou Ieong
Ich denke, es gibt ein paar Dinge zu verstehen, wenn die Arbeit mit API-Gateway-integration mit Lambda.
Lambda-Integration vs Lambda-Proxy-Integration
Früher gab es nur die Lambda-Integration erfordert mapping-Vorlagen. Ich vermute, das ist, warum immer noch sehen viele Beispiele mit.
Gewusst wie: übergeben Sie ein querystring-Parameter oder die parameter der route zu AWS Lambda von Amazon API-Gateway
Serverlose Architektur auf die AWS
Körper wird escaped string, nicht als JSON
Verwendung von Lambda-Proxy-Integration, den Körper im Falle von lambda-Ausdruck ist ein string mit backslash escaped, kein JSON.
Wenn getestet in einem JSON-formatter.
Dokument unten ist über die Antwort aber es sollte beantragen.
JavaScript zugreifen, es als JSON-Objekt zu konvertieren müssen Sie es zurück in das JSON-Objekt mit json.analysieren in JapaScript, json.dumps in Python.
Den AWS-Dokumentation zeigt, was zu tun ist.
InformationsquelleAutor der Antwort mon
Ich bin mit lambda mit Zappa;
Ich bin senden von Daten mit POST im json-format:
Mein code für basic_lambda_pure.py ist:
Bekam ich die nächste json-Antwort:
meine Daten auf Körper Schlüssel, aber ist code64 codiert, Wie kann ich das wissen? Ich sah den Schlüssel isBase64Encoded
Kopiere ich den Wert für Körper Schlüssel und entschlüsseln mit Dieses tool und "eureka", bekomme ich die Werte.
Ich hoffe, dies hilft Ihnen. 🙂
InformationsquelleAutor der Antwort Te ENe Te