如何在启动类中使用 Azure Function 中的中间件

Posted

技术标签:

【中文标题】如何在启动类中使用 Azure Function 中的中间件【英文标题】:How to use Middle Ware in Azure Function in start up class 【发布时间】:2021-10-06 03:22:49 【问题描述】:

我正在寻找使用中间件来解密在 startup.cs 类中传入 azure 函数的 http 请求。 下面是我的入门课

公共类启动:FunctionsStartup 公共覆盖无效配置(IFunctionsHostBuilder 构建器) 如果(建造者 == 空) 抛出新的 ArgumentNullException(null, new Exception()); ConfigureServices(builder.Services).BuildServiceProvider(true);

IFunctionsHostBuilder 不包含任何类似builder.UseMiddleware 的方法?所以不知道如何做到这一点。 有人可以帮忙吗

【问题讨论】:

【参考方案1】:

如何在启动类中使用 Azure Function 中的中间件

首先Azure Functions默认没有startup类,但是可以使用IWebJobStartup添加服务,其次你不能在启动类中添加自定义中间件。 相反,您可以通过实现IHttpMiddleware 或子类HttpMiddleware 来创建自己的中间件功能

public class UtcRequestDateMiddleWare : HttpMiddleware

    public override Task InvokeAsync(HttpContext context)
    
       context.Response.Headers["x-request-date-utc"] = System.DateTime.UtcNow.ToString("o");
    

查看SO 以获取更多参考

了解如何创建Middleware Functions

【讨论】:

以上是关于如何在启动类中使用 Azure Function 中的中间件的主要内容,如果未能解决你的问题,请参考以下文章

Azure Function IWebJobsStartup 实现中的 ExecutionContext

如何知道 Azure Function 已重启?

Azure Function v3 - 在启动中添加标识时“无法访问 Azure Functions 运行时”

未调用 Azure Function 启动的配置

如何使用 Azure Function 在 Azure 文件共享中解压缩文件?

如何在 Azure Function 代码中使用访问密钥(由 Azure Vault 管理)连接存储