如何在Azure函数中手动将调用标记为失败?

时间:2017-03-14 09:38:56

标签: azure azure-functions csx

我尝试了很多东西,但是我可以强制AzFn理解调用失败的唯一方法是抛出异常而不处理它。因此,如果我返回一个HttpResponseException,AzFn会认为调用是成功的。这感觉不对。

catch (Exception ex)
    {
        logger.Error($"{nameof(ex)}: {ex.Message}", ex);
        response = req.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message, ex);

    }

这应该产生一个标记为失败的调用,但它不会。

1 个答案:

答案 0 :(得分:12)

您的函数抛出的任何异常都会将函数标记为失败。在上面的代码中,您吞下了异常,因此我们认为它是成功的。如果您改为重新抛出异常,该函数将被标记为失败。我们会代表您自动退回500件。

我们不会查看您返回的HttpStatusCode以确定函数是否成功,只是查看函数是否成功运行完成无异常。如果您的函数能够返回响应,那么从我们的角度来看它是成功的。