AWS Неопределенные ошибки лямбда-интеграции и сопоставление шаблона ответа API-шлюза - PullRequest
0 голосов
/ 27 января 2020

Я бы хотел, чтобы мои шаблоны ответов в API Gateway имели доступ к полной необработанной ошибке из лямбды. Я хотел бы отформатировать более удобный ответ для моего потребителя API, которому нужны переменные из выполняющейся лямбды. Без ручного перехвата его в коде и JSON его форматирования.

Тем не менее, лямбда автоматически переформатирует любые неперехваченные ошибки соответственно: {errorMessage, errorType, Trace}. Как описано в aws документах по node.js обработке лямбда-ошибок Так что, если моя исходная ошибка содержала множество других свойств, которые не были включены в errorMessage, они теряются и не могут быть доступны для ответа шаблон. Что ограничивает мою способность возвращать полезное тело ответа? Если я не поймаю ее и JSON не зафиксирую всю ошибку, чтобы она помещалась в errorMessage, но если я делаю это, зачем вообще использовать шаблоны ответов?

My Serverless.yml для контекста. Это 200 ответ. Это прекрасно работает, просто у error-response-template.yml нет полной оригинальной ошибки, только переформатированная лямбда-ошибка.

  - http:
          method: post
          path: /api/users
          integration: lambda
          request:
            schema:
              application/json: ${file(src/schemas/newUser.json)}
          response:
            headers:
              Content-Type: "'application/json'"
            statusCodes:
              201:
                pattern: ''
              200:
                pattern: 'ErrorRegexGoesHere'
                template:
                  application/json: ${file(src/errors/error-response-template.yml)} # JSON return object

На основе AWS документов на API шаблоны ответов шлюза ясно, что я не пропускаю ни одну переменную $.

Рассматривая документы по обработке лямбда-ошибок aws nodejs , в ней не описывается ни один способ или альтернатива, чтобы предотвратить переформатирование необработанных ошибок.

...