拉姆达并没有与HTTP响应API网关返回身体

问题描述 投票:0回答:2

响应显示了单独的λ就好了,当我执行与HTTP JS模块一个非常简单的查询,但是当我通过API网关调用该函数返回体虚,即使我把结果的响应主体。

response = { 
           "statusCode": 200,
           "body": JSON.stringify(results),
           "isBase64Encoded": false
           };
           callback(null, response, connection.end());

由此我得到:

{
"statusCode": 200,
"body": "[]",
"isBase64Encoded": false
}

在API网关,但它显示为

{
"statusCode": 200,
"body": "[{\"id\":15,\"username\":\"3FWF34fWF\",\"password\":\"sha1$02f44ad2$1$c81a28b3217a4fb777850e85dbdfa088ab44266d\",\"email\":\"3514t34fg\",\"activated\":0,\"name\":\"fEEFEFAE4\"}]",
"isBase64Encoded": false
}

当我测试的拉姆达的代码。

任何帮助将是惊人的。我能够随时随地提供更多信息。

javascript http aws-lambda nativescript aws-api-gateway
2个回答
0
投票

我设法解决这个问题,这个问题是不是读我正确地传递给它的头lambda函数。裸记住,您可以通过使用event.headers访问该活动头在lambda。

如果你得到这个问题的双重通过返回整个事件作为而不是实际的结果,如响应检查您收到的拉姆达的事件:

response = { 
       "statusCode": 200,
       "body": JSON.stringify(event),
       "isBase64Encoded": false
       };
       callback(null, response, connection.end());

0
投票

我有类似的问题。我使用Python来代替。

   body = {
        "statusCode": 200,
        "isBase64Encoded": False,
        "headers": {'Content-Type': 'application/json'},
        # "body": {"recc":response}
        "body":  response
    }

其中的λ的响应是:

 "{\"55b7badc-75af-41c0-9877-af308264cb33\": \"0.4666666666666667\", \"4694e172-322e-4a51-930e-d3b9bfd3c2e6\": \"0.36363636363636365\", \"c5447cc5-936d-4aa6-97c4-3f51a7e7c283\": \"0.3\", \"6abf0893-5d32-4a43-942f-aaef4395d91d\": \"0.2727272727272727\", \"c0bf1214-fb41-48eb-b07d-f81b71ba0061\": \"0.25\"}"

这是API网关正确的,BYT不知何故,我得到:

{
  "statusCode": 200,
  "isBase64Encoded": false,
  "headers": {
    "Content-Type": "application/json"
  },
  "body": "{}"
}
© www.soinside.com 2019 - 2024. All rights reserved.