Azure Состояние успешного выполнения функции истинно, даже если код результата равен 500 - PullRequest
1 голос
/ 06 марта 2020

У меня есть azure функция, которая содержит некоторые логики c с довольно простой c try catch (код сокращен для краткости)

    try {
        // do logic here that can potentially fail
    } catch (ex) {
        context.log(`Log details about the exception: ${ex.message}`);
        context.res = {
            status: 500,
            headers: {
                "Content-Type": "application/json" 
            },
            body: {
                message: ex.message
            }
        };

        return;
    }

Так что в случае исключения во время этой логики c я обрабатываю исключение и изящно возвращаюсь в ответе http и завершаю работу приложения. Я ожидаю, что функции azure будут рассматривать 500 кодов состояния как сбой (учитывая, что они являются внутренними ошибками сервера), но моя функция все еще считается успешно выполненной. Учитывая, что это функция с низким уровнем громкости и несколько важная для ее контекста, я должен был получать уведомления обо всех сбоях.

Что такое разумная ошибка? Я выбрасываю исключение вместо простого возврата?

1 Ответ

1 голос
/ 06 марта 2020

Это внутреннее поведение azure проверки состояния функции.

1 . Если ваш код обрабатывает ошибку с помощью try catch block и возвращает 500 вручную, функция azure считает это успешным.

2 . Но если ошибка не обрабатывается кодом, использующим try catch block, она будет помечена как сбойная.

См. этот номер для более подробной информации.

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