如何延迟读取触发器 HTTP 请求的正文,直到稍后在 Azure 函数中?

Vic*_*tor 6 azure-functions

我正在使用 Azure Functions 处理以 base64 编码并在 Json 中传递的大型(> 20MB)文件。

在读取和解析 JSON 正文之前,我需要通过 HTTP 请求标头中传递的 API 密钥对客户端进行身份验证。

分析日志,似乎在执行函数之前读取了整个 JSON。

有没有办法可以将 JSON 正文的读取延迟到我对用户进行身份验证之后?

编辑:

函数声明如下:

public static class V1Functions
{

    [FunctionName("V1MyFunction")]
    public static async Task<IActionResult> MyFunction(
        [HttpTriggerAttribute(AuthorizationLevel.Anonymous, "post", Route = "v1/my_function")] HttpRequest request,
        ILogger logger)
    {
       //...
    }
}
Run Code Online (Sandbox Code Playgroud)

Sta*_*ong 1

您可以使用Azure应用程序服务内置的身份验证和授权支持(easy auth)来对用户进行身份验证。有关 Azure 应用程序服务轻松身份验证的详细信息,请参阅此处

Azure Functions 基于 Azure 应用服务,因此也支持 Azure Functions。

本节说明其工作原理:

在此输入图像描述

每个传入的 HTTP 请求都会经过它,然后由应用程序代码处理。

我认为这是您正在寻找的身份验证方式:在对用户进行身份验证之前不处理代码中的请求数据。 本博客将帮助您使用Azure功能和Easy Auth。

希望能帮助到你。