我正在开发一个Azure Function App(v2),它在同一个Function App中有许多不同的函数。
它将部署在多个Azure区域中,我想添加一个自定义头,以指示哪个区域为请求提供服务。
我知道我可以让每个函数返回HttpResponseMessage
,它可以包含自定义头。我不想把代码复制到每个函数,而是想把它集中在整个Function App项目中。返回HttpResponseMessage
的另一个缺点是我想使用IActionResult
,所以我可以使用JsonResult
或OkObjectResult
以及类似的返回类型。
在ASP.NETMVC项目中,我可以添加一个中间件来添加头文件,或者使用web.config
添加头文件。
如何才能做到这一点,而不必返回HttpResponseMessage
并在每个函数的Run
方法中添加头部?
3条答案
按热度按时间zbwhf8kr1#
我可以通过请求的
HttpContext
访问HttpResponse
对象来做到这一点。例如:
生产:
5cg8jx4n2#
在研究完全相同的问题时,我沿着this blog post。基本上,您派生了一个自定义类,用于JsonResult,OKResult等,并操作
ExecuteResultAsync
方法并在那里添加您的头。它并不能完全帮助你,但是如果你在返回内容时只使用两三个类,它可能会帮助你。
yhived7q3#
现在可以注入中间件,将自定义头添加到函数响应中。
注册
执行情况
(code改编自GitHub sample)