我正在使用AWS labs的无服务器容器(https://github.com/awslabs/aws-serverless-java-container)来处理lambda入口点和响应返回HTML的lambda。它似乎调用lambda并从lambda返回HTML。但是,API Gateway会抛出一个处理响应的拟合。我使用API网关作为代理,而不是配置单个端点。
Wed Jun 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 \ n \ \ Page Title \ r \ n \ r \ n \ r \ n \ n \ n \ \ r \ n \ r \ n \ n \ n \ \ r \ n \ r \ n ... [截止] 2017年6月21日星期三20:53:29 UTC:终点响应标题:{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:由于配置错误导致执行失败:格式错误的Lambda代理响应 Wed Jun 21 20:53:29 UTC 2017:方法已完成,状态:502
从日志中可以看出,AWS自己的Java对象AwsProxyResponse正确地包装了AWS编码的HTML内容。你看到它返回正确的正文和text / html标题。似乎API Gateway随后会处理来自AWS自身响应的响应。
当lambda的响应是Content-Type时,如何让AWS Gateway正确处理响应:test / html?
答案 0 :(得分:3)
Lambda函数的响应看起来不正确。它看起来是一个没有任何格式的原始字符串。
它应该是JSON格式:
{
"statusCode": num,
"headers" : {
"key" : "value"
},
"body" : "anything"
}