AWS API 网关 return HTML
AWS API Gateway return HTML
我正在使用 AWS 实验室的无服务器容器 (https://github.com/awslabs/aws-serverless-java-container) 来处理 returns HTML 的 lambda 入口点和响应。它似乎从 lambda 调用 lambda 和 returns HTML 就好了。但是,API Gateway 然后会抛出一个合适的处理响应。我正在使用 API 网关作为代理,而不是配置单个端点。
Wed Jun 21 20:53:29 UTC 2017 : Endpoint response body before transformations: ---
statusCode: 200
headers:
Content-Type: "text/html"
body: "\r\n\r\nhttp://www.w3.org/1999/xhtml\"\r\n \
\ lang=\"en\">\r\n \r\n \r\n \
\ Page Title\r\n \r\n \r\n \
\ \r\n \r\n\
\ \r\n \r\n ... [TRUNCATED]
Wed Jun 21 20:53:29 UTC 2017 : Endpoint response headers: {x-amzn-Remapped-Content-Length=0, x-amzn-RequestId=adb2b101-56c3-11e7-afc6-8383d836980f, Connection=keep-alive, Content-Length=17551, Date=Wed, 21 Jun 2017 20:53:29 GMT, X-Amzn-Trace-Id=root=1-594adcc9-6987c6ed102696c505538b02;sampled=0, Content-Type=application/octet-stream}
Wed Jun 21 20:53:29 UTC 2017 : Execution failed due to configuration error: Malformed Lambda proxy response
Wed Jun 21 20:53:29 UTC 2017 : Method completed with status: 502
正如您从日志中看到的那样,AWS 自己的 Java object、AwsProxyResponse 正确地包装了 HTML AWS 编码的内容。您会看到它返回正确的 body 和 text/html headers。似乎 API 网关在处理来自 AWS 自己的响应时崩溃了。
当 lambda 的响应为 Content-Type 时,我如何让 AWS Gateway 正确处理响应:test/html?
Lambda 函数的响应看起来不正确。它显示为没有任何格式的原始字符串。
格式应该是JSON:
{
"statusCode": num,
"headers" : {
"key" : "value"
},
"body" : "anything"
}
我正在使用 AWS 实验室的无服务器容器 (https://github.com/awslabs/aws-serverless-java-container) 来处理 returns HTML 的 lambda 入口点和响应。它似乎从 lambda 调用 lambda 和 returns HTML 就好了。但是,API Gateway 然后会抛出一个合适的处理响应。我正在使用 API 网关作为代理,而不是配置单个端点。
Wed Jun 21 20:53:29 UTC 2017 : Endpoint response body before transformations: --- statusCode: 200 headers: Content-Type: "text/html" body: "\r\n\r\nhttp://www.w3.org/1999/xhtml\"\r\n \ \ lang=\"en\">\r\n \r\n \r\n \ \ Page Title\r\n \r\n \r\n \ \ \r\n \r\n\ \ \r\n \r\n ... [TRUNCATED] Wed Jun 21 20:53:29 UTC 2017 : Endpoint response headers: {x-amzn-Remapped-Content-Length=0, x-amzn-RequestId=adb2b101-56c3-11e7-afc6-8383d836980f, Connection=keep-alive, Content-Length=17551, Date=Wed, 21 Jun 2017 20:53:29 GMT, X-Amzn-Trace-Id=root=1-594adcc9-6987c6ed102696c505538b02;sampled=0, Content-Type=application/octet-stream} Wed Jun 21 20:53:29 UTC 2017 : Execution failed due to configuration error: Malformed Lambda proxy response Wed Jun 21 20:53:29 UTC 2017 : Method completed with status: 502
正如您从日志中看到的那样,AWS 自己的 Java object、AwsProxyResponse 正确地包装了 HTML AWS 编码的内容。您会看到它返回正确的 body 和 text/html headers。似乎 API 网关在处理来自 AWS 自己的响应时崩溃了。
当 lambda 的响应为 Content-Type 时,我如何让 AWS Gateway 正确处理响应:test/html?
Lambda 函数的响应看起来不正确。它显示为没有任何格式的原始字符串。
格式应该是JSON:
{
"statusCode": num,
"headers" : {
"key" : "value"
},
"body" : "anything"
}