0

AWSラボのサーバレスコンテナ(https://github.com/awslabs/aws-serverless-java-container)を使用して、HTMLを返すラムダのラムダエントリポイントとレスポンスを処理しています。それはラムダを呼び出し、ラムダからHTMLを返すように見えます。しかし、API Gatewayは応答を適切に処理します。 APIゲートウェイをプロキシとして使用しており、個々のエンドポイントを設定していません。AWS API Gateway return HTML

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オブジェクトを所有し、AwsProxyResponseは、適切にAWSがそれをコード化する方法HTMLコンテンツをラップします。あなたはそれが正しいbodyとtext/htmlヘッダを返すのを見ます。それから、API GatewayはAWSの応答から応答を処理するようになります。

lambdaからの応答がContent-Type:test/htmlの場合、AWS Gatewayが応答を正しく処理する方法を教えてください。

答えて

3

ラムダ関数の応答が正しく表示されません。フォーマットのない生の文字列が表示されます。

それは形式でJSONのようになります。

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

私はその後、レスポンスのシリアライズを台無しにYAMLファイルを読み込むためであることをObjectMapperを変換していました。これで、AWSが期待するようにJSON形式のラムダは返されませんでした。 ObjectMapperを修正した後、ObjectMapperは機能しました。ありがとう! – FiguringThisOut

関連する問題