Как проверить наличие ошибки в AWS Lambda, которая выдает исключение в узле - PullRequest
0 голосов
/ 05 февраля 2019

Я делаю базовый набор TDD на AWS Lambda и замечаю, что если я создаю простую тестовую функцию:

exports.handler = async (event) => {
    // Will always fail
    throw "Failed to execute - this is a failure function that will always fail";
};

Это когда я вызываю его через SDK с com.amazonaws.services.lambda.model.InvokeRequest Код ответа для этой функции всегда возвращается как 200, а журнал ошибок пуст!

Мне интересно, что я делаю что-то не так с точки зрения вызова и запроса ошибок здесь;потому что кажется сумасшедшим, что функция JavaScript, которая генерирует исключение, и, когда я тестирую ее, сообщает о сбое выполнения в консоли AWS Lambda, возвращает 200?

, я заметил, что здесь я использую асинхронный вариант;поэтому я попытался также с вариантом синхронизации и вызовом context.fail ():

exports.handler = (event, context, callback) => {
    // Will always fail
    try {
        throw "Failed to execute - this is a failure function that will always fail";
    }
    catch(e) {
        context.fail(e);
    }
};

Я бы определенно ожидал, что это вернет 500 или что-то еще, но снова я получу 200!

1 Ответ

0 голосов
/ 05 февраля 2019

Лямбда имеет два типа вызова .

  1. RequestResponse (синхронный)
  2. событие (асинхронное)

Как вы можетевидите, проблема не обязательно существует в вашей лямбда-функции.Я бы посоветовал проверить ваш код, который вызывает эту лямбду, чтобы увидеть, какой тип вызова вы используете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...