我尝试了很多东西,但是我可以强制AzFn理解调用失败的唯一方法是抛出异常而不处理它。因此,如果我返回一个HttpResponseException,AzFn会认为调用是成功的。这感觉不对。
catch (Exception ex)
{
logger.Error($"{nameof(ex)}: {ex.Message}", ex);
response = req.CreateErrorResponse(HttpStatusCode.InternalServerError, ex.Message, ex);
}
这应该产生一个标记为失败的调用,但它不会。
答案 0 :(得分:12)
您的函数抛出的任何异常都会将函数标记为失败。在上面的代码中,您吞下了异常,因此我们认为它是成功的。如果您改为重新抛出异常,该函数将被标记为失败。我们会代表您自动退回500件。
我们不会查看您返回的HttpStatusCode
以确定函数是否成功,只是查看函数是否成功运行完成无异常。如果您的函数能够返回响应,那么从我们的角度来看它是成功的。