AWS API Gateway - лямбда-прокси (запрос на интеграцию) - внутренняя ошибка сервера - PullRequest
0 голосов
/ 11 июня 2019

Простая интеграция Lambda POST с DynamoDB.Вставляет одну запись в Динамо при исполнении.Хорошо работает при тестировании в AWS Lambda .

Выход ответа:

{
  "isBase64Encoded": false,
  "statusCode": 204,
  "headers": {
    "Content-Type": "application/json",
    "Access-Control-Allow-Origin": "*",
    "Access-Control-Allow-Credentials": true
  },
  "body": "{}"
}

Этот ответ программно определяется как часть обработки лямбда-ответа в соответствии с спецификацией (afaict).

Однако при запуске через тест в API Gateway я получаю 502 Внутренняя ошибка сервера.Я использую интеграцию Lambda-Proxy, как показано ниже:

API Gateway Lamba Proxy Integration

Журналы Cloudwatch показывают:

{ ValidationException: Supplied AttributeValue is empty, must contain exactly one of the supported datatypes
at Request.extractError 

с ограниченным использованием стека трассировки (webpackхешировал код довольно хорошо).Вышеуказанная ошибка может указывать на то, что DynamoDB не получает полезную нагрузку правильно или в формате, который требует наличия обязательных атрибутов.Однако я взял тот же JSON, который использовался для (успешных) тестов (настройка уникальности идентификаторов между запусками) из lambda, и считаю, что мой заголовок запроса (Content-Type: application / json) является разумным.

Есть какие-нибудь мысли / помощь по сужению проблемы?Я могу опубликовать дополнительную информацию по запросу, если это поможет.

1 Ответ

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

Хорошо, решил эту проблему, зарегистрировав все выходные данные (и проверив их в CloudWatch), в частности объект event. При работе в режиме Lambda Test идентификатор и другие атрибуты POST были переданы в корень объекта события. Однако при использовании режима lambda-proxy интеграция перераспределяет иерархию объекта события, а атрибуты POST преобразуются в JSON в атрибут body.

Просто причуды, которые имеют смысл, когда вы понимаете, что они делают. Тем не менее, странно, что при тестировании Lambda & API Gateway происходит сбой той же полезной нагрузки.

...