发布函数时未返回 Azure Functions V2 Http 错误代码内容

Posted

技术标签:

【中文标题】发布函数时未返回 Azure Functions V2 Http 错误代码内容【英文标题】:Azure Functions V2 Http Error Code content not returned when function published 【发布时间】:2018-12-11 00:15:12 【问题描述】:

我正在使用 Azure Functions V2,在 Visual Studio 2017 中开发。我想为我的函数返回的 HTTP 错误代码返回自定义内容。当我在本地测试时,这很好用。但是当我将函数发布到 Azure 时,不再返回自定义内容。

这很容易重现。这是一个函数(摘自 VS 2017 Azure Function 新项目模板):

using System;
using System.IO;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Extensions.Http;
using Microsoft.AspNetCore.Http;
using Microsoft.Azure.WebJobs.Host;
using Newtonsoft.Json;

namespace FunctionApp1

    public static class Function1
    
        [FunctionName("StatusCodeTest")]
        public static IActionResult Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequest req, TraceWriter log)
        
            return new NotFoundObjectResult("Sample content text.");
        
    

在本地运行并从 Postman 发出 Post 或 Get。它将返回 404 Not Found 状态代码并显示“示例内容文本”的响应正文。

将函数发布到 Azure 并在那里调用它——通过 Postman 或使用 Azure 门户的测试或运行功能。 404 仍会返回,但自定义输出会替换为通用消息“您要查找的资源已被删除、名称已更改或暂时不可用。”

其他 ...ObjectResult 状态码的行为相同,例如 BadRequestObjectResult 等。

如何发布或配置我的函数以使其返回自定义错误状态内容?

【问题讨论】:

【参考方案1】:

这是最新的 Functions v2 运行时 (2.0.11888) 中的回归。请参阅https://github.com/Azure/app-service-announcements/issues/117 了解更多详细信息和解决方法。

更一般地说,请关注此 repo 以确保您收到所有通知。

【讨论】:

感谢您的快速回复。我没有遇到过那个回购或帖子。将跟随它在这里。与微软的许多事情一样,有大量的信息、文档和资源可供筛选。我真的很享受无服务器功能开发体验。我们正在使用 Azure Funcitons 构建一个生产应用程序,并且进展顺利。绝对是靠技术和易用性来卖的。 有没有关于 azure functions v2 的 eta ? 没有确切的预计到达时间,但现在还不算太远。关注该回购以保持最新

以上是关于发布函数时未返回 Azure Functions V2 Http 错误代码内容的主要内容,如果未能解决你的问题,请参考以下文章

Azure Functions 突然找不到入口点错误

Azure Functions HTTP 触发器:如何将异常从 python 工作日志返回给 API 调用者

使用依赖注入时未注册持久的 Azure 函数绑定类型

在事件中心接收消息时未触发 ASE 中的 Azure 函数

Azure 函数 - 'azure-functions-host' 文件夹的位置

Azure Functions System.Net.Primitives:值不能为空。 (参数“主机”)