Лямбда не возвращает тело с HTTP-ответом на API-шлюз - PullRequest
0 голосов
/ 08 февраля 2019

Ответ очень хорошо показывает только на Lambda, когда я выполняю очень простой запрос с модулем 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
}

.

Любая помощь будет потрясающей.Я могу дать больше информации в любое время.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

У меня похожая проблема.Вместо этого я использую 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, но как-то я получаю:

{
  "statusCode": 200,
  "isBase64Encoded": false,
  "headers": {
    "Content-Type": "application/json"
  },
  "body": "{}"
}
0 голосов
/ 09 февраля 2019

Мне удалось решить проблему, проблема заключалась в том, что лямбда-функция не читала заголовки, которые я передавал правильно.Имейте в виду, что вы можете получить доступ к заголовкам событий в лямбде, используя event.headers.

Если вы столкнулись с этой проблемой, дважды проверьте событие, которое вы получаете в лямбде, возвращая все событие как ответ, а не какфактические результаты, такие как:

response = { 
       "statusCode": 200,
       "body": JSON.stringify(event),
       "isBase64Encoded": false
       };
       callback(null, response, connection.end());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...