AWS API Gateway возвращает HTML
Я использую серверный контейнер AWS labs ( https://github.com/awslabs/aws-serverless-java-container) для обработки лямбда-точки входа и ответа для лямбда-выражения, возвращающего HTML. Похоже, что он вызывает лямбду и возвращает HTML просто отлично от лямбды. Тем не менее, API-шлюз затем обрабатывает ответ. Я использую API-шлюз в качестве прокси-сервера, а не настраиваю отдельные конечные точки.
Ср 21 июня 20:53:29 UTC 2017: Тело ответа конечной точки до преобразований: --- statusCode: 200 заголовков: Тип контента: "text/html" тело: "\r\n\r\nhttp://www.w3.org/1999/xhtml\"\r\n \ \ lang=\"en\">\r\n \r\n \r\n \ \ Заголовок страницы \r\n \r\n \r\n \ \ \r\n \r\n\ \ \r\n \r\n ... [TRUNCATED] Ср. 21 июня 20:53:29 UTC 2017: Заголовки ответа конечной точки: {x-amzn-Remapped-Content-Length=0, x-amzn-RequestId=adb2b101-56c3-11e7-afc6-8383d836980f, соединение =keep-alive, Content-Length=17551, дата = ср, 21 июня 2017 20:53:29 GMT, X-Amzn-Trace-Id=root=1-594adcc9-6987c6ed102696c505538b02; выборка =0, Content-Type=application/octet-stream} Ср. 21 июня 20:53:29 UTC 2017: Выполнение не выполнено из-за ошибки конфигурации: неверный ответ лямбда-прокси ср 21 июня 20:53:29 UTC 2017: Метод завершен со статусом: 502
Как видно из журналов, собственный объект Java AWS, AwsProxyResponse, правильно оборачивает содержимое HTML, как его кодировал AWS. Вы видите, что он возвращает правильные заголовки body и text / html. Похоже, что API-шлюз взорвался, обрабатывая ответ от собственного ответа AWS.
Как заставить AWS Gateway правильно обрабатывать ответ, когда лямбда-ответом является Content-Type: test/html?
1 ответ
Ответ от функции Lambda не выглядит правильным. Появляется необработанная строка без какого-либо формата.
Это должен быть JSON в формате:
{
"statusCode": num,
"headers" : {
"key" : "value"
},
"body" : "anything"
}