首页 文章

AWS API Gateway返回HTML

提问于
浏览
0

我正在使用AWS labs的无服务器容器(https://github.com/awslabs/aws-serverless-java-container)来处理lambda入口点和响应返回HTML的lambda . 它似乎调用lambda并从lambda返回HTML . 但是,API Gateway会抛出一个处理响应的拟合 . 我使用API网关作为代理,而不是配置单个 endpoints .

Wed Jun 21 20:53:29 UTC 2017:转换前的 endpoints 响应体:--- statusCode:200个头:Content-Type:“text / html”body:“\ r \ n \ r \ n \ nhttp:// www .w3.org / 1999 / xhtml \“\ r \ n \ \ lang = \”en \“> \ r \ n \ r \ n \ r \ n \ \页面 Headers \ r \ n \ r \ n \ r \ n \ n \ \ \ r \ n \ r \ n \ \ \ r \ n \ r \ n ... [截止日期] Wed Jun 21 20:53:29 UTC 2017:终点响应 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; samples = 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 Headers . 似乎API Gateway随后会处理来自AWS自身响应的响应 .

当lambda的响应是Content-Type:test / html时,如何让AWS Gateway正确处理响应?

1 回答

  • 3

    Lambda函数的响应看起来不正确 . 它看起来是没有任何格式的原始字符串 .

    它的格式应该是JSON:

    {
      "statusCode": num,
      "headers" : {
        "key" : "value"
      },
      "body" : "anything"
    }
    

相关问题