Ich habe erstellt aws apigateway Lambda-Integration für meinen Proxy-Server. Wenn ich eine Anfrage an das Gateway mache, wird die Anfrage erfolgreich ausgeführt. Die Lambda-Funktion führt auch erfolgreich und schreibt Reaktion in Output mit status als 200. Aber apigateway gibt immer 502.aws apigateway Lambda immer zurück 502
Snippet handle():
BufferedReader reader = new BufferedReader(new
InputStreamReader(inputStream));
JSONObject event = (JSONObject) parser.parse(reader);
request = Input.builder().setEvent(event).build();
Response response = requestManager.handleRequest(request);
logger.log(String.format("Response [%s]", response.toString()));
JSONObject responseJson = new JSONObject();
responseJson.put("statusCode", response.getStatusCode());
responseJson.put("headers", response.getHeaders());
JSONObject jsonBody = (JSONObject) parser.parse(response.getBody());
responseJson.put("body", jsonBody);
OutputStreamWriter writer = new OutputStreamWriter(outputStream, "UTF-8");
logger.log("response recieved");
logger.log(String.format("responseJson [%s]", responseJson));
writer.write(responseJson.toJSONString());
writer.close();
logger.log(String.format("output stream [%s]", outputStream));
ich etwas fehle?
Ausgangsstrom [ { "Header": { "Keep-Alive": "", "Transfer-Encoding": "gestückelt", "Server": "Apache", "Vary": " Accept-Encoding " "Datum": "", "Content-Type": "application/json; charset = UTF-8" }, "Körper": { "Metadaten": {}, " http_code ": 200, " Daten ": { " Größe ": 1, " list_item_type ":" Nachricht ", " Typ ":" Nachrichten ", " Artikel ": [ ] }, "message": "", "Status": "Erfolg" }, "status": 200 } ] –
@kunalshrivastava Körper wird erwartet, dass ein String sein. Wenn Sie JSON zurückgeben möchten, müssen Sie es umgehen. –